fix: clean up pending usage no matter whether object upload is success

This commit is contained in:
Qiu Jian
2020-03-03 02:12:49 +08:00
parent da235de896
commit 60ef016f42
+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
}