You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm using S3ProxyRule in a JUnit test (it's really nice!) and I noticed that if I perform a multipart upload and then read back the resulting object metadata, the etag from the HEAD request doesn't match the etag from the multipart complete request.
org.junit.ComparisonFailure:
Expected :59adb24ef3cdbe0297f05b395827453f-1
Actual :d41d8cd98f00b204e9800998ecf8427e
with both the filesystem and transient providers.
I'm running this on a Mac, and it sounds like the lack of extended attributes support might the cause of the etag mismatch for the filesystem provider. So if you want to say that's working as designed, that's fair. But the transient provider would work just fine for my purposes- any chance it can be enhanced to save the multipart etag rather than recalculating it (incorrectly) on read? Thanks!
The text was updated successfully, but these errors were encountered:
The underlying Apache jclouds LocalBlobStore converts multi-part uploads into single-part uploads in completeMultipartUpload. This allows filesystem access to read large files uploaded via S3Proxy but does not give the expected behavior for tests. I think the best we can do here is add a configuration flag to jclouds. Would you like to submit a pull request to do this?
I think I misinterpreted this issue. S3Proxy/jclouds should preserve the MPU-style ETag even when it internally converts the multiparts into a single part. There is no need for a configuration flag. @bsfarrell@timuralp do either of you want to work on this?
I can look into the change in jclouds to store the MPU ETag using extended attributes (where supported). I believe this would resolve this issue and help improve the filesystem blobstore S3 compatibility.
I'm using
S3ProxyRule
in a JUnit test (it's really nice!) and I noticed that if I perform a multipart upload and then read back the resulting object metadata, the etag from the HEAD request doesn't match the etag from the multipart complete request.Here's an example testcase:
This fails with
with both the filesystem and transient providers.
I'm running this on a Mac, and it sounds like the lack of extended attributes support might the cause of the etag mismatch for the filesystem provider. So if you want to say that's working as designed, that's fair. But the transient provider would work just fine for my purposes- any chance it can be enhanced to save the multipart etag rather than recalculating it (incorrectly) on read? Thanks!
The text was updated successfully, but these errors were encountered: