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; }
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); }
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); } }
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); }