From fec4dec3ac64edcd2121f1c7e99f4df402b82c1f Mon Sep 17 00:00:00 2001 From: Aaron Liu Date: Fri, 5 Dec 2025 15:17:07 +0800 Subject: [PATCH] feat(upload): etag check in client-side upload / support empty policy ID --- assets | 2 +- service/explorer/upload.go | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/assets b/assets index 1b1f9f4c..0b388cc5 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 1b1f9f4c8e35d72ac60216af611c81355bd4f7ce +Subproject commit 0b388cc50a6c8e67f645d1b7d569bd9e58ae2c30 diff --git a/service/explorer/upload.go b/service/explorer/upload.go index d0046fa7..b9b2b021 100644 --- a/service/explorer/upload.go +++ b/service/explorer/upload.go @@ -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,9 +57,12 @@ func (service *CreateUploadSessionService) Create(c context.Context) (*UploadSes } hasher := dep.HashIDEncoder() - policyId, err := hasher.Decode(service.PolicyID, hashid.PolicyID) - if err != nil { - return nil, serializer.NewError(serializer.CodeParamErr, "unknown policy id", err) + 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{ @@ -66,6 +70,7 @@ func (service *CreateUploadSessionService) Create(c context.Context) (*UploadSes Uri: uri, Size: service.Size, + PreviousVersion: service.Previous, MimeType: service.MimeType, Metadata: service.Metadata, EntityType: entityType,