Documentation ¶
Overview ¶
Package s3 brings S3 files handling to afero
Package s3 brings S3 files handling to afero ¶
Package s3 brings S3 files handling to afero
Index ¶
- Variables
- func New(opt Option) (fs.FS, error)
- type File
- func (f *File) Close() error
- func (f *File) Name() string
- func (f *File) Read(p []byte) (int, error)
- func (f *File) ReadAt(p []byte, off int64) (n int, err error)
- func (f *File) Readdir(n int) ([]os.FileInfo, error)
- func (f *File) ReaddirAll() ([]os.FileInfo, error)
- func (f *File) Readdirnames(n int) ([]string, error)
- func (f *File) Seek(offset int64, whence int) (int64, error)
- func (f *File) Stat() (os.FileInfo, error)
- func (f *File) Sync() error
- func (f *File) Truncate(int64) error
- func (f *File) Write(p []byte) (int, error)
- func (f *File) WriteAt(p []byte, off int64) (n int, err error)
- func (f *File) WriteString(s string) (int, error)
- type FileInfo
- type Fs
- func (fs *Fs) Chmod(name string, mode os.FileMode) error
- func (Fs) Chown(string, int, int) error
- func (Fs) Chtimes(string, time.Time, time.Time) error
- func (f *Fs) Conn() *ssh.ServerConn
- func (f *Fs) Context() map[string]string
- func (fs *Fs) Create(name string) (afero.File, error)
- func (f *Fs) Filecmd(request *sftp.Request) error
- func (f *Fs) Filelist(request *sftp.Request) (sftp.ListerAt, error)
- func (f *Fs) Fileread(request *sftp.Request) (io.ReaderAt, error)
- func (f *Fs) Filewrite(request *sftp.Request) (io.WriterAt, error)
- func (f *Fs) Logger() log.Logger
- func (fs *Fs) Mkdir(name string, perm os.FileMode) error
- func (fs *Fs) MkdirAll(path string, perm os.FileMode) error
- func (*Fs) Name() string
- func (fs *Fs) Open(name string) (afero.File, error)
- func (fs *Fs) OpenFile(name string, flag int, _ os.FileMode) (afero.File, error)
- func (f *Fs) Permissions() []string
- func (fs *Fs) Remove(name string) error
- func (fs *Fs) RemoveAll(name string) error
- func (fs *Fs) Rename(oldname, newname string) error
- func (f *Fs) SetConn(sconn *ssh.ServerConn)
- func (f *Fs) SetContext(ctx map[string]string)
- func (f *Fs) SetID(p string)
- func (f *Fs) SetLogger(logger log.Logger)
- func (f *Fs) SetPermissions(p []string)
- func (fs *Fs) Stat(name string) (os.FileInfo, error)
- func (f *Fs) Type() string
- type Option
- type UploadedFileProperties
Constants ¶
This section is empty.
Variables ¶
var ErrAlreadyOpened = errors.New("already opened")
ErrAlreadyOpened is returned when the file is already opened
var ErrInvalidSeek = errors.New("invalid seek offset")
ErrInvalidSeek is returned when the seek operation is not doable
var ErrNotImplemented = errors.New("not implemented")
ErrNotImplemented is returned when this operation is not (yet) implemented
var ErrNotSupported = errors.New("s3 doesn't support this operation")
ErrNotSupported is returned when this operations is not supported by S3
Functions ¶
Types ¶
type File ¶
type File struct {
// contains filtered or unexported fields
}
File represents a file in S3.
func (*File) Close ¶
Close closes the File, rendering it unusable for I/O. It returns an error, if any.
func (*File) Read ¶
Read reads up to len(b) bytes from the File. It returns the number of bytes read and an error, if any. EOF is signaled by a zero count with err set to io.EOF.
func (*File) ReadAt ¶
ReadAt reads len(p) bytes from the file starting at byte offset off. It returns the number of bytes read and the error, if any. ReadAt always returns a non-nil error when n < len(b). At end of file, that error is io.EOF.
func (*File) Readdir ¶
Readdir reads the contents of the directory associated with file and returns a slice of up to n FileInfo values, as would be returned by ListObjects, in directory order. Subsequent calls on the same file will yield further FileInfos.
If n > 0, Readdir returns at most n FileInfo structures. In this case, if Readdir returns an empty slice, it will return a non-nil error explaining why. At the end of a directory, the error is io.EOF.
If n <= 0, Readdir returns all the FileInfo from the directory in a single slice. In this case, if Readdir succeeds (reads all the way to the end of the directory), it returns the slice and a nil error. If it encounters an error before the end of the directory, Readdir returns the FileInfo read until that point and a non-nil error.
func (*File) ReaddirAll ¶
ReaddirAll provides list of file cachedInfo.
func (*File) Readdirnames ¶
Readdirnames reads and returns a slice of names from the directory f.
If n > 0, Readdirnames returns at most n names. In this case, if Readdirnames returns an empty slice, it will return a non-nil error explaining why. At the end of a directory, the error is io.EOF.
If n <= 0, Readdirnames returns all the names from the directory in a single slice. In this case, if Readdirnames succeeds (reads all the way to the end of the directory), it returns the slice and a nil error. If it encounters an error before the end of the directory, Readdirnames returns the names read until that point and a non-nil error.
func (*File) Seek ¶
Seek sets the offset for the next Read or Write on file to offset, interpreted according to whence: 0 means relative to the origin of the file, 1 means relative to the current offset, and 2 means relative to the end. It returns the new offset and an error, if any. The behavior of Seek on a file opened with O_APPEND is not specified.
func (*File) Stat ¶
Stat returns the FileInfo structure describing file. If there is an error, it will be of type *PathError.
func (*File) Truncate ¶
Truncate changes the size of the file. It does not change the I/O offset. If there is an error, it will be of type *PathError.
func (*File) Write ¶
Write writes len(b) bytes to the File. It returns the number of bytes written and an error, if any. Write returns a non-nil error when n != len(b).
type FileInfo ¶
type FileInfo struct {
// contains filtered or unexported fields
}
FileInfo implements os.FileInfo for a file in S3.
func NewFileInfo ¶
NewFileInfo creates file cachedInfo.
func (FileInfo) Mode ¶
Mode provides the file mode bits. For a file in S3 this defaults to 664 for files, 775 for directories. In the future this may return differently depending on the permissions available on the bucket.
type Fs ¶
type Fs struct { FileProps *UploadedFileProperties // FileProps define the file properties we want to set for all new files // contains filtered or unexported fields }
Fs is an FS object backed by S3.
func NewFsFromClient ¶
NewFsFromClient creates a new Fs instance from a S3 client
func NewFsFromConfig ¶
NewFsFromConfig creates a new Fs instance from an AWS Config nolint: gocritic // it's OK to copy this object, it's not very frequent
func (Fs) Chown ¶
Chown doesn't exist in S3 should probably NOT have been added to afero as it's POSIX-only concept.
func (Fs) Chtimes ¶
Chtimes could be implemented if needed, but that would require to override object properties using metadata, which makes it a non-standard solution
func (*Fs) Conn ¶
func (f *Fs) Conn() *ssh.ServerConn
func (*Fs) Permissions ¶
func (*Fs) Rename ¶
Rename a file. There is no method to directly rename an S3 object, so the Rename will copy the file to an object with the new name and then delete the original.
func (*Fs) SetConn ¶
func (f *Fs) SetConn(sconn *ssh.ServerConn)
func (*Fs) SetContext ¶
func (*Fs) SetPermissions ¶
type UploadedFileProperties ¶
type UploadedFileProperties struct { CacheControl *string // CacheControl defines the Cache-Control header ContentType *string // ContentType define the Content-Type header ACL string // ACL defines the right to apply }
UploadedFileProperties defines all the set properties applied to future files