S3 API calls HEAD with extra postfix string
silviu001 opened this issue · 0 comments
silviu001 commented
Hello,
I encounter an issue with geesefs, version 0.40.8, when I am using S3 endpoints that return HTTP 403 for any endpoint that doesn't exist, instead of HTTP 404, even though the session is correctly authenticated.
temp/geesefs » ./geesefs-linux-amd64 --debug --debug_s3 --list-type 1 --endpoint https://eodata.dataspace.copernicus.eu EODATA /mnt/eodata
s3.DEBUG HEAD https://eodata.dataspace.copernicus.eu/EODATA = 403 []
s3.DEBUG Server = [envoy]
s3.DEBUG Date = [Fri, 10 May 2024 10:56:20 GMT]
s3.DEBUG DEBUG: Request s3/HeadObject Details:
---[ REQUEST POST-SIGN ]-----------------------------
HEAD /EODATA/9ixpj40xr7jy289wkxvc1i7ki16e9f1l HTTP/1.1
Host: eodata.dataspace.copernicus.eu
User-Agent: GeeseFS/0.40.8 (go1.19.13; linux; amd64)
[......]
s3.DEBUG DEBUG: Validate Response s3/HeadObject failed, attempt 0/3, error Forbidden: Forbidden
status code: 403, request id: , host id:
main.FATAL Mounting file system: Unable to access 'EODATA': Forbidden: Forbidden
status code: 403, request id: , host id:
The credentials are correct because I can use them with s3fs or s3cmd without an issue. Our investigation concluded that the issue is with the postfix added to HEAD calls:
HEAD /EODATA/9ixpj40xr7jy289wkxvc1i7ki16e9f1l HTTP/1.1
When I try the same command but with an MinIO S3 endpoint that correctly returns 404 Not Found
it works as geesefs will go further and try to list the content of the bucket and mounts the endpoint correctly.
Is there any way to workaround this postfix addon?
Thanks,
Silviu.