storj/satellite/metabase
Fadila Khadar 3d9329a5b1 satellite/metabase: overwrite existing destination on copy
s3 allows for overwriting an object when using server-side copy.
This change makes overwriting the destination part of the atomic server-side copy operation so that
if copy fails, the old object is still available.

All the segments of the existing destination are deleted. If this destination object is an ancestor of another object, a new ancestor is promoted.

Fixes https://github.com/storj/storj/issues/4607

Change-Id: I85d1250850bb71867586ac230c8275a0cc1b63c3
2022-04-07 06:28:51 +00:00
..
metabasetest satellite/metabase: deletion query as explicit transaction 2022-03-31 11:40:36 +00:00
segmentloop satellite/metabase/segmentloop: start immediately on manual trigger 2021-09-28 18:32:03 +00:00
zombiedeletion satellite/metainfo/zombiedeletion: enable chore by default 2021-12-21 13:26:18 +01:00
alias_test.go ci: fix lint errors 2021-05-17 13:37:31 +00:00
alias.go satellite/metabase: drop alias migration code 2021-05-07 12:13:28 +03:00
aliascache_test.go satellite/metabase/metabasetest: move test utils to a separate package 2021-04-26 13:12:58 +03:00
aliascache.go satellite/metabase: deletion query as explicit transaction 2022-03-31 11:40:36 +00:00
aliaspiece_test.go satellite/metabase: move package one level higher 2021-04-21 15:54:22 +03:00
aliaspiece.go satellite/metabase: move package one level higher 2021-04-21 15:54:22 +03:00
bench_expired_test.go Revert "satellite/metabase: use storj.Nonce instead []byte" 2021-10-12 15:39:54 +02:00
bench_test.go satellite/metabase: drop GetObjectLatestVersion method 2022-02-02 09:40:53 +00:00
commit_object_test.go Revert "satellite/metabase: use storj.Nonce instead []byte" 2021-10-12 15:39:54 +02:00
commit_object.go Revert "satellite/metabase: use storj.Nonce instead []byte" 2021-10-12 15:39:54 +02:00
commit_test.go cmd,private,satellite: add application_name to metabase connections 2022-02-20 22:29:41 +01:00
commit.go satellite/metabase/metabasetest/create: return segments 2022-02-28 13:40:46 +00:00
common_test.go segment/{metabase,repair}: add dedicated methods on metabase.Pieces 2021-08-03 15:12:03 +00:00
common.go satellite/metabase: BeginCopyObject and FinishCopyObject 2022-02-17 13:37:39 +01:00
consts_test.go satellite/metabase: move package one level higher 2021-04-21 15:54:22 +03:00
copy_object_test.go satellite/metabase: overwrite existing destination on copy 2022-04-07 06:28:51 +00:00
copy_object.go satellite/metabase: overwrite existing destination on copy 2022-04-07 06:28:51 +00:00
db_internal_test.go satellite/metabase/segmentloop: limit max interval 2021-06-10 17:06:33 +00:00
db_test.go satellite/metabase: drop alias migration code 2021-05-07 12:13:28 +03:00
db.go satellite/metainfo: add feature flag for server side copy code 2022-02-24 10:43:49 +00:00
delete_bucket_test.go satellite/metabase: delete bucket with cross-bucket copies 2022-04-05 01:32:02 +02:00
delete_bucket.go satellite/metabase: delete bucket with cross-bucket copies 2022-04-05 01:32:02 +02:00
delete_objects_test.go satellite/metabase/metabasetest/create: return segments 2022-02-28 13:40:46 +00:00
delete_objects.go satellite/metabase: send metric about zombie segment deletion 2021-10-04 16:25:23 +00:00
delete_test.go satellite/metabase: delete bucket with cross-bucket copies 2022-04-05 01:32:02 +02:00
delete.go satellite/metabase: deletion query as explicit transaction 2022-03-31 11:40:36 +00:00
encoding.go satellite/metabase: deletion query as explicit transaction 2022-03-31 11:40:36 +00:00
get_test.go satellite/metabase: drop GetSegmentByOffset 2022-03-30 09:03:48 +00:00
get.go satellite/metabase: drop GetSegmentByOffset 2022-03-30 09:03:48 +00:00
iterator_test.go satellite/metabase: always include encryption in listed object 2021-11-12 05:08:01 +00:00
iterator_util_test.go satellite/metabase: fix listing prefixes with cursor set 2021-07-07 14:30:46 +00:00
iterator.go satellite/metabase: always include encryption in listed object 2021-11-12 05:08:01 +00:00
list_segments_test.go satellite/metabase: flatten copy references when copying 2022-03-20 10:29:37 +00:00
list_segments.go satellite/metabase: adjust ListSegments to return copied segments correctly 2022-03-15 09:52:22 +00:00
list.go satellite: omit system metadata fields if not requested 2021-11-08 09:19:44 +01:00
loop_test.go Revert "satellite/metabase: use storj.Nonce instead []byte" 2021-10-12 15:39:54 +02:00
loop.go satellite/metainfo: propagate geofencing between buckets and stream id 2021-11-24 08:05:05 +00:00
metadata_test.go Revert "satellite/metabase: use storj.Nonce instead []byte" 2021-10-12 15:39:54 +02:00
metadata.go Revert "satellite/metabase: use storj.Nonce instead []byte" 2021-10-12 15:39:54 +02:00
move_object_test.go satellite/metabase: bring back copy/move validation for key and nonce 2022-04-01 07:23:22 +00:00
move_object.go satellite/metabase: bring back copy/move validation for key and nonce 2022-04-01 07:23:22 +00:00
project_test.go satellite/metabase: add GetProjectSegmentCount method 2021-11-24 13:20:02 +00:00
project.go satellite/metabase: add GetProjectSegmentCount method 2021-11-24 13:20:02 +00:00
raw.go satellite/metabasetest: include copies in raw state. 2022-02-18 12:48:42 +00:00
stats_test.go satellite/metabase: add method to get table statistics 2021-06-16 18:34:55 +03:00
stats.go satellite/metabase: use db methods that pass context correctly 2021-07-29 09:32:31 +00:00
streamstat_test.go Revert "satellite/metabase: use storj.Nonce instead []byte" 2021-10-12 15:39:54 +02:00
streamstat.go satellite/metabase: use db methods that pass context correctly 2021-07-29 09:32:31 +00:00
update_test.go satellite/metabase: drop GetSegmentByOffset 2022-03-30 09:03:48 +00:00
update.go satellite/metabase: use db methods that pass context correctly 2021-07-29 09:32:31 +00:00
util.go satellite/metabase: add intLimitRange 2021-07-19 07:51:16 +00:00