-
Notifications
You must be signed in to change notification settings - Fork 231
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
Error with multipart upload to Azure storage: BlockID not a valid base64 string #653
Comments
I can confirm that it seems to fail for all cases where the I solved locally by forking and replacing the special handling of Unfortunately, this will still fail once it gets to I can do a bit of work to support more but ultimately the fix lies with jclouds and it's use of |
After doing more investigation I believe the issue lies with Azure on this. Everything I've read indicates that I have reported this issue to Azure and hopefully they will resolve this in their end. Unfortunately, this API will remain practically unusable until Azure fixes it unless we can think of some other way to handle it. Edit: just wanted to comment that Azure responded saying that the |
apache/jclouds#208 will address this. For now you can override |
You might also try the new azureblob-sdk provider tracked by #606 which works today in master. |
Hello all,
I have s3proxy stood up to point to an Azure storage endpoint. All was well until I attempted to upload a relatively large mp4 file (about 400 MB) and the multipart upload would fail with the following error (with confidential info removed):
Cannot retry after server error, command is not replayable: [method=org.jclouds.azureblob.AzureBlobClient.public abstract void org.jclouds.azureblob.AzureBlobClient.putBlock(java.lang.String,java.lang.String,java.lang.String,org.jclouds.io.Payload)[XXXXXXXXXXX, XXXXXXXXXXX/666b2296638fe0de53a54633.mp4, AAK_IA==, [content=true, contentMetadata=[cacheControl=null, contentDisposition=null, contentEncoding=null, contentLanguage=null, contentLength=8388608, contentMD5=null, contentType=application/unknown, expires=null], written=false, isSensitive=false]], request=PUT https://XXXXXXXXXXX.blob.core.XXXXXXXXXXX.net/XXXXXXXXXXX/666b2296638fe0de53a54633.mp4?comp=block&blockid=AAK_IA%3D%3D HTTP/1.1]
After some further digging, I found out that Azure was sending back a 400 to the proxy complaining about the blockid query param not being base64 encoded:
</Message><QueryParameterName>blockid</QueryParameterName><QueryParameterValue>AAK_IA==</QueryParameterValue><Reason>Not a valid base64 string.</Reason></Error>
Indeed, that blockid
AAK_IA==
doesn't look like what I would expect for a base64 encoded string.Repro Steps/Logs:
I cloned and stood up an instance of the latest version of s3proxy locally and ran the following command from s3 cli:
Got the following response:
Here's the relevant chunk of the debug trace from s3proxy (with confidential info removed)
Let me know if there is any more info that would be helpful to provide (configs, ect.) or if there is anything else I should try. I appreciate your time and effort :)
The text was updated successfully, but these errors were encountered: