]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
rgw/dbstore: Multipart upload APIs
authorSoumya Koduri <skoduri@redhat.com>
Mon, 22 Nov 2021 16:58:19 +0000 (22:28 +0530)
committerSoumya Koduri <skoduri@redhat.com>
Wed, 8 Dec 2021 17:33:12 +0000 (23:03 +0530)
commita7100972ad9f4ce359770cc1f0fe6ba0d353c07c
treead142cf45868b6725c6aad8b71d4fabfa0017a29
parenta09886f8b1aa44c9ff8b1667930ee0483be75360
rgw/dbstore: Multipart upload APIs

For multipart upload processing, below is the method applied -

MultipartUpload::Init - create head object entry for meta obj (src_obj_name + "." + upload_id)
[ Meta object stores all the parts upload info]

MultipartWriter::process - create all data/tail objects with obj_name same as
meta obj (so that they can all be identified & deleted during abort)

MultipartUpload::Abort - Just delete meta obj .. that will indirectly delete all the uploads
associated with that upload id / meta obj so far.

MultipartUpload::Complete - Create head object of the original object (if not exists).
Rename all data/tail object entries' obj name to orig object name and update metadata of the orig object.

Signed-off-by: Soumya Koduri <skoduri@redhat.com>
src/rgw/rgw_common.h
src/rgw/rgw_sal_dbstore.cc
src/rgw/rgw_sal_dbstore.h
src/rgw/rgw_sal_rados.cc
src/rgw/store/dbstore/common/dbstore.cc
src/rgw/store/dbstore/common/dbstore.h
src/rgw/store/dbstore/sqlite/sqliteDB.cc
src/rgw/store/dbstore/sqlite/sqliteDB.h
src/rgw/store/dbstore/tests/dbstore_tests.cc