package s3 import ( "io/fs" "time" "github.com/minio/minio-go/v7" ) type FileInfo struct { name string size int64 mtime time.Time objectInfo *minio.ObjectInfo } // base name of the file func (fi *FileInfo) Name() string { return fi.name } // length in bytes for regular files; system-dependent for others func (fi *FileInfo) Size() int64 { return fi.size } // file mode bits func (fi *FileInfo) Mode() fs.FileMode { return 0o400 // user read/write permissions } // modification time func (fi *FileInfo) ModTime() time.Time { return fi.mtime } // abbreviation for Mode().IsDir() func (fi *FileInfo) IsDir() bool { return false // S3 has no directories } // underlying data source (can return nil) func (fi *FileInfo) Sys() interface{} { return fi.objectInfo } func transformObjectInfo(info minio.ObjectInfo) fs.FileInfo { return &FileInfo{ objectInfo: &info, name: info.Key, size: info.Size, mtime: info.LastModified, } }