Merge pull request #5324 from swordqiu/hotfix/qj-clean-upload-object-region-quota

fix: clean up pending usage no matter whether object upload is success
This commit is contained in:
Zexi Li
2020-03-03 13:14:08 +08:00
committed by GitHub
+3 -4
View File
@@ -939,6 +939,9 @@ func (bucket *SBucket) PerformUpload(
if err := quotas.CheckSetPendingQuota(ctx, userCred, &pendingUsage); err != nil {
return nil, httperrors.NewOutOfQuotaError("%s", err)
}
// always cancel pending usage
defer quotas.CancelPendingUsage(ctx, userCred, &pendingUsage, &pendingUsage)
}
err = cloudprovider.UploadObject(ctx, iBucket, key, 0, appParams.Request.Body, sizeBytes, cloudprovider.TBucketACLType(aclStr), storageClass, meta, false)
@@ -951,10 +954,6 @@ func (bucket *SBucket) PerformUpload(
bucket.syncWithCloudBucket(ctx, userCred, iBucket, nil, true)
if !pendingUsage.IsEmpty() {
quotas.CancelPendingUsage(ctx, userCred, &pendingUsage, &pendingUsage)
}
return nil, nil
}