Files
filestore/remote/miniostorage/file.go
T
2025-10-29 00:59:52 +03:00

32 lines
845 B
Go

package miniostorage
import (
"io/fs"
"net/http"
"github.com/minio/minio-go/v7"
)
// Убеждаемся в том, что мы всегда реализуем интерфейс http.File.
var _ http.File = (*minioFileWrapper)(nil)
// minioFileWrapper оборачивает minio.Object для реализации http.File.
type minioFileWrapper struct {
*minio.Object
name string
}
// Readdir требуется для http.File. Для файлов возвращает ошибку.
func (f *minioFileWrapper) Readdir(count int) ([]fs.FileInfo, error) {
return nil, fs.ErrInvalid
}
// Stat возвращает FileInfo, требуемый для http.File.
func (f *minioFileWrapper) Stat() (fs.FileInfo, error) {
info, err := f.Object.Stat()
if err != nil {
return nil, err
}
return &minioFileInfo{info: info}, nil
}