mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-08-20 14:17:07 +00:00
s3: allow-unordered is a listing parameter, not an unimplemented subresource (#10846)
The guard that stops a bucket GET with an unknown subresource from being answered with a listing does not know about allow-unordered, so it answers 501 NotImplemented - to a parameter the listing handlers already read and already validate against delimiter. This is why test_bucket_list_unordered and test_bucket_listv2_unordered fail in the Ceph s3-tests suite. They fail on master too; this is not a Lance change and can be taken on its own. Claude-Session: https://claude.ai/code/session_01Rkp1Mw5E89Jp6dzJFYiMrm
This commit is contained in:
@@ -177,7 +177,7 @@ var listObjectsQueryParams = map[string]bool{
|
||||
"prefix": true, "delimiter": true, "marker": true, "max-keys": true,
|
||||
"encoding-type": true, "list-type": true, "continuation-token": true,
|
||||
"start-after": true, "fetch-owner": true, "expected-bucket-owner": true,
|
||||
"x-id": true,
|
||||
"allow-unordered": true, "x-id": true,
|
||||
// SigV2 presigned URLs.
|
||||
"AWSAccessKeyId": true, "Signature": true, "Expires": true,
|
||||
}
|
||||
|
||||
@@ -18,6 +18,11 @@ func TestUnroutedBucketSubresource(t *testing.T) {
|
||||
"list-type=2&continuation-token=x",
|
||||
"delimiter=/&encoding-type=url",
|
||||
"x-id=ListObjectsV2",
|
||||
// The listing handlers read allow-unordered and validate it against
|
||||
// delimiter, so the guard has to let it through to them.
|
||||
"allow-unordered=true",
|
||||
"allow-unordered=true&max-keys=1000",
|
||||
"list-type=2&allow-unordered=true",
|
||||
"prefix=a&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=deadbeef&X-Amz-Expires=900",
|
||||
"AWSAccessKeyId=key&Signature=sig&Expires=1700000000",
|
||||
} {
|
||||
|
||||
Reference in New Issue
Block a user