25 lines
730 B
Go
25 lines
730 B
Go
package s3
|
|
|
|
import (
|
|
"io/fs"
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/minio/minio-go/v7"
|
|
)
|
|
|
|
type FileInfo struct {
|
|
minio.ObjectInfo
|
|
}
|
|
|
|
func (fi FileInfo) Name() string { return fi.UserMetadata["filename"] }
|
|
func (fi FileInfo) Size() int64 { return fi.ObjectInfo.Size }
|
|
|
|
// TODO: try to map s3 permissions to these, somehow
|
|
func (fi FileInfo) Mode() fs.FileMode { return 0o640 }
|
|
func (fi FileInfo) ModTime() time.Time { return fi.LastModified }
|
|
func (fi FileInfo) IsDir() bool { return false }
|
|
func (fi FileInfo) Sys() interface{} { return fi.ObjectInfo }
|
|
func (fi FileInfo) ID() uuid.UUID { return uuid.MustParse(fi.Key) }
|
|
func (fi FileInfo) ContentType() string { return fi.ObjectInfo.ContentType }
|