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