30 lines
1.3 KiB
Go
30 lines
1.3 KiB
Go
package usecase
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
"time"
|
|
)
|
|
|
|
// FileStorageUseCase ...
|
|
type FileStorageUseCase interface {
|
|
// Download 下載指定路徑的對象並返回其內容
|
|
Download(ctx context.Context, objectPath string) ([]byte, error)
|
|
// Move 將對象從一個路徑移動到另一個指定路徑
|
|
Move(ctx context.Context, objectPath string, destinationPath string) error
|
|
// Delete 刪除指定路徑的對象
|
|
Delete(ctx context.Context, objectPath string) error
|
|
// Exists 檢查指定路徑的對象是否存在
|
|
Exists(ctx context.Context, objectPath string) (bool, error)
|
|
// DeleteDirectory 刪除指定路徑的文件夾及其內容
|
|
DeleteDirectory(ctx context.Context, directoryPath string) error
|
|
// UploadWithTTL 從 io.Reader 上傳文件到指定路徑,並設置自訂過期時間
|
|
UploadWithTTL(ctx context.Context, content io.Reader, objectPath string, expires *time.Time) error
|
|
// UploadFromData 直接從數據上傳文件到指定路徑,可指定 MIME 類型
|
|
UploadFromData(ctx context.Context, data []byte, objectPath string, contentType string) error
|
|
// UploadFromPath 將本地文件從指定路徑上傳到對象存儲路徑
|
|
UploadFromPath(ctx context.Context, localFilePath string, objectPath string) error
|
|
// GetPublicURL 獲取對象的完整公共 URL
|
|
GetPublicURL(ctx context.Context, objectPath string) string
|
|
}
|