Please describe the problem.
On my Garage/S3 remote, if I configure partsize=100Mib
, any uploads which are larger than this partsize return:
copy testlargefile (to garage...)
XmlException {xmlErrorMessage = "Missing Location"}
XmlException {xmlErrorMessage = "Missing Location"}
failed
The file here is at 124MiB - I can then immediately reattempt the copy command and get:
copy testlargefile ok
Any files below 100MiB report no errors and if I configure no partsize - there are no errors either.
What version of git-annex are you using? On what operating system?
master on Fedora Silverblue.
Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
All wonderful otherwise.
The "Missing Location" message is generated by the aws library when a multipart upload results in a response from the S3 server that does not include a Location tag.
You should be able to verify this by passing --debug to see the http response.
This is documented in the AWS API here.
I suspect this is (another) respect where the Garage server doesn't implement the API quite right..
It would be possible to change the aws library to not throw an error here, and git-annex is not actually using that Location tag for anything. But it seems like it would probably be better to fix Garage.
Setting chunk= rather than partsize= should be an easy workaround for the problem.
For future google searchers:
When interfacing with Ceph storage via the S3 backend, I get errors like the following on larger files
XmlException {xmlErrorMessage = "Missing ETag"}
Like above, these 'errors' are actually successes with a non-compliant S3 backend that is missing either the Location or Etag file.
I confirm that setting partsize > chunk works around this issue, in my case
chunk=4GiB partsize=5GiB
.Best, Kevin