예제 #1
0
        public void Parallel_CreateWriteReadFile()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                using (var fs = new S3V4FileSystem(NFX_S3, getFSNode(NFX_S3)))
                {
                    System.Threading.Tasks.Parallel.For(PARALLEL_FROM, PARALLEL_TO,
                                                        (i) =>
                    {
                        var fn      = FN_PARALLEL_MASK.Args(i);
                        var session = fs.StartSession();

                        var dir = session[S3_ROOT_FS] as FileSystemDirectory;

                        using (var file = dir.CreateFile(fn))
                        {
                            file.WriteAllText("Hello, {0}".Args(i));
                        }

                        using (var file = session[fs.CombinePaths(S3_ROOT_FS, fn)] as FileSystemFile)
                        {
                            Assert.AreEqual("Hello, {0}".Args(i), file.ReadAllText());
                            file.Delete();
                        }
                        Assert.IsNull(session[fs.CombinePaths(S3_ROOT_FS, fn)]);
                    });//Parallel.For
                }
            }
        }
예제 #2
0
        public void CreateWriteReadFile_1()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                using (var fs = new S3V4FileSystem(NFX_S3, getFSNode(NFX_S3)))
                {
                    var session = fs.StartSession();

                    var dir = session[S3_ROOT_FS] as FileSystemDirectory;

                    using (var file = dir.CreateFile(FN2_FS))
                    {
                        var str = file.FileStream;

                        var wri = new BinaryWriter(str);

                        wri.Write("Hello!");
                        wri.Write(true);
                        wri.Write(27.4d);
                        wri.Close();
                    }

                    using (var file = session[fs.CombinePaths(S3_ROOT_FS, FN2_FS)] as FileSystemFile)
                    {
                        var str = file.FileStream;

                        var rdr = new BinaryReader(str);

                        Assert.AreEqual("Hello!", rdr.ReadString());
                        Assert.AreEqual(true, rdr.ReadBoolean());
                        Assert.AreEqual(27.4d, rdr.ReadDouble());
                    }
                }
            }
        }
예제 #3
0
        public void CreateDeleteFile()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                using (var fs = new S3V4FileSystem(NFX_S3, getFSNode(NFX_S3)))
                {
                    var session = fs.StartSession();
                    var dir     = session[S3_ROOT_FS] as FileSystemDirectory;
                    var file    = dir.CreateFile(S3_FN1, 1500);

                    Assert.AreEqual(S3_FN1, file.Name);

                    IDictionary <string, string> headersFN1 = S3V4.GetItemMetadata(file.Path, S3_ACCESSKEY, S3_SECRETKEY, S3_BUCKET, S3_REGION, 0);
                    Assert.AreEqual(1500, headersFN1["Content-Length"].AsInt());
                    Assert.AreEqual(1500, file.FileStream.Length);

                    Assert.AreEqual(1500, file.Size);

                    var file2 = session[fs.CombinePaths(S3_ROOT_FS, S3_FN1)];
                    Assert.IsNotNull(file2);
                    Assert.IsTrue(file2 is FileSystemFile);
                    Assert.AreEqual(S3_FN1, ((FileSystemFile)file2).Name);

                    file.Dispose();

                    file2.Delete();
                    Assert.IsFalse(fileExists((FileSystemFile)file2));
                }
            }
        }
예제 #4
0
        public void CreateWriteReadFile_2()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                using (var fs = new S3V4FileSystem(NFX_S3, getFSNode(NFX_S3)))
                {
                    var session = fs.StartSession();

                    var dir = session[S3_ROOT_FS] as FileSystemDirectory;

                    using (var file = dir.CreateFile(FN4_FS))
                    {
                        file.WriteAllText("This is what it takes!");
                    }

                    using (var file = session[fs.CombinePaths(S3_ROOT_FS, FN4_FS)] as FileSystemFile)
                    {
                        Assert.AreEqual("This is what it takes!", file.ReadAllText());
                    }
                }
            }
        }
예제 #5
0
        public void CreateWriteCopyReadFile()
        {
            using (new NFX.ApplicationModel.ServiceBaseApplication(null, LACONF.AsLaconicConfig()))
            {
                using (var fs = new S3V4FileSystem(NFX_S3, getFSNode(NFX_S3)))
                {
                    var session = fs.StartSession();

                    var dir = session[S3_ROOT_FS] as FileSystemDirectory;

                    using (Stream s = new FileStream(FN2_FS_FULLPATH, FileMode.Create, FileAccess.Write))
                    {
                        var wri = new BinaryWriter(s);

                        wri.Write("Hello!");
                        wri.Write(true);
                        wri.Write(27.4d);
                        wri.Close();
                    }

                    //FN3 copied from FN2 and made readonly

                    Assert.IsNotNull(dir.CreateFile(FN3_FS, Path.Combine(LOCAL_ROOT_FS, FN2_FS), true));


                    using (var file = session[fs.CombinePaths(S3_ROOT_FS, FN3_FS)] as FileSystemFile)
                    {
                        var str = file.FileStream;

                        var rdr = new BinaryReader(str);

                        Assert.AreEqual("Hello!", rdr.ReadString());
                        Assert.AreEqual(true, rdr.ReadBoolean());
                        Assert.AreEqual(27.4d, rdr.ReadDouble());
                    }
                }
            }
        }
예제 #6
0
        public void CombinePaths()
        {
            using (var fs = new S3V4FileSystem("S3-1"))
            {
                Assert.AreEqual("https://dxw.s3-us-west-2.amazonaws.com/a.txt", fs.CombinePaths("https://dxw.s3-us-west-2.amazonaws.com/", "a.txt"));
                Assert.AreEqual("https://dxw.s3-us-west-2.amazonaws.com/a.txt", fs.CombinePaths("https://dxw.s3-us-west-2.amazonaws.com/", "/a.txt"));


                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "nfx", "books", "saga.pdf"));

                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "nfx", "/books", "saga.pdf"));

                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "/nfx", "/books", "saga.pdf"));

                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "/nfx", "/books", "/saga.pdf"));

                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "nfx", "books", "/saga.pdf"));


                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "nfx/", "books", "saga.pdf"));

                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "nfx/", "/books", "saga.pdf"));

                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "/nfx/", "/books", "saga.pdf"));

                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "/nfx/", "/books", "/saga.pdf"));

                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "/nfx/", "/books", "/saga.pdf"));

                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "nfx/", "books", "/saga.pdf"));


                Assert.AreEqual("https://dxw.s3-us-west-1.amazonaws.com/nfx/books/saga.pdf",
                                fs.CombinePaths("https://dxw.s3-us-west-1.amazonaws.com/", "nfx", "books", "/saga.pdf"));
            }
        }