Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.UnsupportedOperationException: blob access not supported by Azure #640

Closed
ciaqui opened this issue May 24, 2024 · 2 comments
Closed

Comments

@ciaqui
Copy link

ciaqui commented May 24, 2024

hi, i've been trying to get boto3 working with s3proxy (forwarding to azure blob storage) running behind nginx and i've had no issues with getting the objects from storage but i've been stuck trying to get s3proxy to upload files to my container.

s3proxy configuration file:

s3proxy.authorization=none
s3proxy.identity=u1trav101
s3proxy.credential=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
s3proxy.endpoint=http://127.0.0.1:8080

jclouds.provider=azureblob
jclouds.identity=u1trav101cdn
jclouds.credential=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
jclouds.endpoint=https://u1trav101cdn.blob.core.windows.net

nginx configuration file:

server {
	listen 80;
	listen [::]:80;
	listen 443 ssl;
	listen [::]:443 ssl;

	server_name cdn.u1trav101.net; # managed by Certbot
	ssl_certificate /etc/letsencrypt/live/u1trav101.net/fullchain.pem; # managed by Certbot
	ssl_certificate_key /etc/letsencrypt/live/u1trav101.net/privkey.pem; # managed by Certbot
        ssl_trusted_certificate /etc/letsencrypt/live/u1trav101.net/chain.pem;

	sendfile		on;
	default_type		application/octet-stream;
	keepalive_timeout	65;

	location / {
		proxy_pass		http://127.0.0.1:8080;
	}
}

s3proxy trace logs:

[s3proxy] D 05-24 23:45:59.715 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:301 |::] request: Request(PUT http://127.0.0.1:8080/u1traspace/usercontent/img/rsz/100px/3.gif)@24dd006a
[s3proxy] T 05-24 23:45:59.717 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: X-Amz-Date: 20240524T234559Z
[s3proxy] T 05-24 23:45:59.717 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: x-amz-acl: public-read
[s3proxy] T 05-24 23:45:59.717 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: Connection: close
[s3proxy] T 05-24 23:45:59.717 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: User-Agent: Boto3/1.26.102 Python/3.12.3 Linux/6.8.9-300.fc40.x86_64 Botocore/1.29.165
[s3proxy] T 05-24 23:45:59.718 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: Host: 127.0.0.1:8080
[s3proxy] T 05-24 23:45:59.718 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: Accept-Encoding: identity
[s3proxy] T 05-24 23:45:59.718 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: Content-MD5: VAVufBub9kziH6MxBtUqxA==
[s3proxy] T 05-24 23:45:59.718 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: Authorization: AWS4-HMAC-SHA256 Credential=u1traspace/20240524/eu-north-1/s3/aws4_request, SignedHeaders=content-md5;content-type;host;x-amz-acl;x-amz-content-sha256;x-amz-date, Signature=169d559d45afdf7aea6c5abc71fd65e28f424a4ede1a70d84acfac10116d12f0
[s3proxy] T 05-24 23:45:59.719 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: amz-sdk-invocation-id: 7ab49724-a9c6-46fd-95ae-83689279bdea
[s3proxy] T 05-24 23:45:59.719 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: amz-sdk-request: attempt=1
[s3proxy] T 05-24 23:45:59.719 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: Content-Length: 8853
[s3proxy] T 05-24 23:45:59.719 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: X-Amz-Content-SHA256: UNSIGNED-PAYLOAD
[s3proxy] T 05-24 23:45:59.719 S3Proxy-Jetty-20 o.gaul.s3proxy.S3ProxyHandler:326 |::] header: Content-Type: image/gif
[s3proxy] D 05-24 23:45:59.720 S3Proxy-Jetty-20 o.g.s.S3ProxyHandlerJetty:136 |::] UnsupportedOperationException:
java.lang.UnsupportedOperationException: blob access not supported by Azure

boto3 error:

boto3.exceptions.S3UploadFailedError: Failed to upload /home/ciara/Code/u1traspace/web/routes/../../usercontent/img/raw/3.gif to u1traspace/usercontent/img/raw/3.gif: An error occurred (501) when calling the PutObject operation: Not Implemented

i've been frustrated for days trying to debug this to no avail so any help with this would be greatly appreciated

@ciaqui
Copy link
Author

ciaqui commented Jun 17, 2024

if anyone is reading this, i never found a solution so i abandoned s3proxy and migrated to aws instead :/

@gaul
Copy link
Owner

gaul commented Oct 7, 2024

This error message is saying that Azure does not support access control that the client is trying to set on the object. Instead it only supports container-level access control. Thus if you configure your client to not set access control then it should succeed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants