feat(upload): etag check in client-side upload / support empty policy ID

This commit is contained in:
Aaron Liu 2025-12-05 15:17:07 +08:00
parent 67c6f937c9
commit fec4dec3ac
2 changed files with 9 additions and 4 deletions

2
assets

@ -1 +1 @@
Subproject commit 1b1f9f4c8e35d72ac60216af611c81355bd4f7ce
Subproject commit 0b388cc50a6c8e67f645d1b7d569bd9e58ae2c30

View File

@ -30,6 +30,7 @@ type (
Metadata map[string]string `json:"metadata" binding:"max=256"`
EntityType string `json:"entity_type" binding:"eq=|eq=live_photo|eq=version"`
EncryptionSupported []types.Cipher `json:"encryption_supported"`
Previous string `form:"previous"`
}
)
@ -56,16 +57,20 @@ func (service *CreateUploadSessionService) Create(c context.Context) (*UploadSes
}
hasher := dep.HashIDEncoder()
policyId, err := hasher.Decode(service.PolicyID, hashid.PolicyID)
policyId := 0
if service.PolicyID != "" {
policyId, err = hasher.Decode(service.PolicyID, hashid.PolicyID)
if err != nil {
return nil, serializer.NewError(serializer.CodeParamErr, "unknown policy id", err)
}
}
uploadRequest := &fs.UploadRequest{
Props: &fs.UploadProps{
Uri: uri,
Size: service.Size,
PreviousVersion: service.Previous,
MimeType: service.MimeType,
Metadata: service.Metadata,
EntityType: entityType,