Get object in namespaced s3 compatible bucket only returns first 4kiB
See original GitHub issueEnvironment info
- NooBaa Version: master+74b79637d8a9a1dca2baf51598860579711a5c6b
- Platform: OKD 4.5
Actual behavior
- Performing a
GETto any object in a namespaced bucket returns only the first 4kiB.
Expected behavior
- Performing a
GETto any object in a namespaced bucket should return the full object
Steps to reproduce
- Create namespaced s3 compatible bucket
- Upload an object
GETthe object
More information - Screenshots / Logs / Other output
Also the metadata of all objects is reported incorrectly, as Content-Length Noobaa always states 4096.
As far as i can see this commit from @paulxuzhang introduced the problem here: https://github.com/noobaa/noobaa-core/blob/72a0fbc92ac4c29a98a8ab3eca3118a167860f5b/src/sdk/namespace_s3.js#L142-L144
Also i noticed that even when you send a headObject request to Noobaa this function (read_object_md) gets called and performs a getObject, instead of only calling headObject on the backend.
Issue Analytics
- State:
- Created 3 years ago
- Reactions:3
- Comments:5 (5 by maintainers)
Top Results From Across the Web
ListObjects - Amazon Simple Storage Service
Returns some or all (up to 1000) of the objects in a bucket. ... For backward compatibility, Amazon S3 continues to support ListObjects...
Read more >4.3. Accessing Virtuozzo Storage Clusters via S3-like Object ...
Virtuozzo Storage can export data via an Amazon S3-compatible API, enabling service ... Validates access permissions to buckets and objects using ACL.
Read more >Bucket and object properties - Hitachi Vantara Knowledge
Buckets and objects have various properties that affect what you can do with them and what happens when you take action on them....
Read more >Chapter 8. Object Bucket Claim Red Hat OpenShift Container ...
An Object Bucket Claim can be used to request an S3 compatible bucket backend for your workloads. You can create an Object Bucket...
Read more >Amazon S3 Compatibility API - Oracle Help Center
Object Storage doesn't use a global bucket namespace. ... you can only use the Amazon S3 Compatibility API in your Oracle Cloud ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

@guymguym Created PR https://github.com/noobaa/noobaa-core/pull/6167 for this issue. The root cause is that the changes supporting partNumber query parameter sets content-length to the one returned by hub, it ends up that content-length is set to Inline Range Length (4kb) for object with size > 4kb if partNumber query parameter is NOT set.
We should whether we have existing tests or create new for validating that.
Fixed by #6167