-
Notifications
You must be signed in to change notification settings - Fork 50
Open
Labels
Description
A frequent mistake new users of mmpu make is not specifying part etags when committing the object:
# create a multipart upload and upload some parts
$ mmpu create ~~/stor/my-obj.txt
bde8ee50-dcdb-6d09-a2e8-afcfcee440d3
$ mmpu upload bde8ee50-dcdb-6d09-a2e8-afcfcee440d3 0 -f part1.txt
5354ee1e-0f37-4840-dc60-bfabc5e1f8f9
$ mmpu upload bde8ee50-dcdb-6d09-a2e8-afcfcee440d3 1 -f part2.txt
d44c62a7-256a-c351-957f-d5741b25e80c
# try to commit the object (but this commits an empty object)
$ mmpu commit bde8ee50-dcdb-6d09-a2e8-afcfcee440d3
# "Where's my object?"
$ mget ~~/stor/my-obj.txt
$
The MPU API requires part etags because parts are normal Manta objects and can thus be overwritten. Specifying the etag ensures the client is committing the correct object. To mirror the API, the mmpu CLI requires the etags the user wants to commit.
Using the CLI is well-documented (in both the mmpu commit help message and the mmpu man page). Still, given that so many users expect mmpu commit to commit parts they've uploaded without the additional etag specification step, it would be good to improve the usability of this command.