Skip to content

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

Closed

Description

@cmqui

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

Activity

  1. cmqui commented on Jun 17, 2024

    @cmqui
    Author

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

  2. gaul commented on Oct 7, 2024

    @gaul
    Owner

    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions