27 lines
901 B
Go
27 lines
901 B
Go
// Package fileauth 实现监管文件服务上传凭证(与 docs/FileAuth.java 一致,生产 scope=仅 bucket)。
|
||
package fileauth
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
const defaultUploadExpires = 3600 * time.Second
|
||
|
||
// CreateUploadToken 生成上传凭证(FileAuth.java upload profile,scope=仅 bucket)。
|
||
func CreateUploadToken(accessKey, secret, bucket string, expires time.Duration) (string, error) {
|
||
if expires <= 0 {
|
||
expires = defaultUploadExpires
|
||
}
|
||
deadline := time.Now().Unix() + int64(expires.Seconds())
|
||
return CreateUploadTokenAt(accessKey, secret, bucket, deadline)
|
||
}
|
||
|
||
// CreateUploadTokenAt 在指定 deadline 生成上传凭证。
|
||
func CreateUploadTokenAt(accessKey, secret, bucket string, deadlineUnix int64) (string, error) {
|
||
parts, err := BuildUploadTokenPartsForUpload(accessKey, secret, bucket, deadlineUnix)
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
return parts.UploadToken, nil
|
||
}
|