History

perform object sweep after equeue the latest CopyObject() (#15183)

keep it similar to PutObject/CompleteMultipart

Harshavardhana committed 4 years ago

Commit 699cf6f1 parent 92018701 file · +9 −10Browse files

Unified · Split

cmd/object-handlers.go+9−10
@@ -1446,9 +1446,11 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re · 1445 unmodified lines
1446 return1446 return
1447 }1447 }
1448 1448
1449 var objInfo ObjectInfo1449 remoteCallRequired := isRemoteCopyRequired(ctx, srcBucket, dstBucket, objectAPI)
1450 1450
1451 if isRemoteCopyRequired(ctx, srcBucket, dstBucket, objectAPI) {1451 var objInfo ObjectInfo
1452 var os *objSweeper
1453 if remoteCallRequired {
1452 var dstRecords []dns.SrvRecord1454 var dstRecords []dns.SrvRecord
1453 dstRecords, err = globalDNSConfig.Get(dstBucket)1455 dstRecords, err = globalDNSConfig.Get(dstBucket)
1454 if err != nil {1456 if err != nil {
@@ -1484,8 +1486,7 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re · 29 unmodified lines
1484 objInfo.ETag = remoteObjInfo.ETag1486 objInfo.ETag = remoteObjInfo.ETag
1485 objInfo.ModTime = remoteObjInfo.LastModified1487 objInfo.ModTime = remoteObjInfo.LastModified
1486 } else {1488 } else {
1487 1489 os = newObjSweeper(dstBucket, dstObject).WithVersioning(dstOpts.Versioned, dstOpts.VersionSuspended)
1488 os := newObjSweeper(dstBucket, dstObject).WithVersioning(dstOpts.Versioned, dstOpts.VersionSuspended)
1489 // Get appropriate object info to identify the remote object to delete1490 // Get appropriate object info to identify the remote object to delete
1490 if !srcInfo.metadataOnly {1491 if !srcInfo.metadataOnly {
1491 goiOpts := os.GetOpts()1492 goiOpts := os.GetOpts()
@@ -1508,11 +1509,6 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re · 16 unmodified lines
1508 writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)1509 writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)
1509 return1510 return
1510 }1511 }
1511
1512 // Remove the transitioned object whose object version is being overwritten.
1513 if !globalTierConfigMgr.Empty() {
1514 logger.LogIf(ctx, os.Sweep())
1515 }
1516 }1512 }
1517 1513
1518 objInfo.ETag = getDecryptedETag(r.Header, objInfo, false)1514 objInfo.ETag = getDecryptedETag(r.Header, objInfo, false)
@@ -1544,9 +1540,12 @@ func (api objectAPIHandlers) CopyObjectHandler(w http.ResponseWriter, r *http.Re · 25 unmodified lines
1544 UserAgent: r.UserAgent(),1540 UserAgent: r.UserAgent(),
1545 Host: handlers.GetSourceIP(r),1541 Host: handlers.GetSourceIP(r),
1546 })1542 })
1547 if !globalTierConfigMgr.Empty() {1543
1544 if !remoteCallRequired && !globalTierConfigMgr.Empty() {
1548 // Schedule object for immediate transition if eligible.1545 // Schedule object for immediate transition if eligible.
1549 enqueueTransitionImmediate(objInfo)1546 enqueueTransitionImmediate(objInfo)
1547 // Remove the transitioned object whose object version is being overwritten.
1548 logger.LogIf(ctx, os.Sweep())
1550 }1549 }
1551}1550}
1552 1551

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t