Example #1
0
        protected internal override FileSystemSessionItem DoNavigate(FileSystemSession session, string path)
        {
            var s3session = (S3V4FileSystemSession)session;

            S3V4FSH handle = new S3V4FSH(path);

            if (path != "" && S3V4.FileExists(path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs))
            {
              return new FileSystemFile(s3session, handle.Parent, handle.Name, handle);
            }

            if (S3V4.FolderExists(path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs))
            {
              return new FileSystemDirectory(s3session, handle.Parent, handle.Name, handle);
            }

            return null;
        }
Example #2
0
        protected internal override FileSystemFile DoCreateFile(FileSystemDirectory dir, string name, int size)
        {
            var s3session = (S3V4FileSystemSession)dir.Session;

            var filePath = this.CombinePaths(dir.Path, name);
            var handle = new S3V4FSH(filePath);

            byte[] bytes = new byte[size];
            MemoryStream contentStream = new MemoryStream(bytes);

            S3V4.PutFile(handle.Path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, contentStream, s3session.TimeoutMs);

            return new FileSystemFile(s3session, handle.Parent, handle.Name, handle);
        }
Example #3
0
        protected internal override FileSystemFile DoCreateFile(FileSystemDirectory dir, string name, string localFile, bool readOnly)
        {
            var s3session = (S3V4FileSystemSession)dir.Session;
            var filePath = this.CombinePaths(dir.Path, name);
            var handle = new S3V4FSH(filePath);

            using(System.IO.FileStream r = new System.IO.FileStream(localFile, System.IO.FileMode.Open, System.IO.FileAccess.Read))
            {
              S3V4.PutFile(filePath, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, r, s3session.TimeoutMs);
              return new FileSystemFile(dir.Session, handle.Parent, handle.Name, handle);
            }
        }
Example #4
0
        protected internal override FileSystemDirectory DoCreateDirectory(FileSystemDirectory dir, string name)
        {
            var s3session = (S3V4FileSystemSession)dir.Session;
            var dirPath = this.CombinePaths(dir.Path, name);
            var handle = new S3V4FSH(dirPath);

            S3V4.PutFolder(handle.Path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs);

            return new FileSystemDirectory(s3session, handle.Parent, handle.Name, handle);
        }