2022-10-23 17:29:35 +08:00
|
|
|
package storage
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2023-07-14 21:47:11 +08:00
|
|
|
"git.0x7f.app/WOJ/woj-server/internal/e"
|
2022-10-23 17:29:35 +08:00
|
|
|
"go.uber.org/zap"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func (s *service) Upload(objectName string, expiry time.Duration) (string, e.Status) {
|
|
|
|
preSignedURL, err := s.client.PresignedPutObject(
|
|
|
|
context.Background(),
|
|
|
|
s.bucket,
|
|
|
|
objectName,
|
|
|
|
expiry,
|
|
|
|
)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
s.log.Warn("failed to generate pre-signed upload url",
|
|
|
|
zap.Error(err),
|
|
|
|
zap.String("objectName", objectName),
|
|
|
|
zap.Duration("expiry", expiry),
|
|
|
|
)
|
|
|
|
return "", e.StorageUploadFailed
|
|
|
|
}
|
|
|
|
|
|
|
|
return preSignedURL.String(), e.Success
|
|
|
|
}
|