-
Notifications
You must be signed in to change notification settings - Fork 877
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
[storage] Adds support for Append Blobs #278
Conversation
Hi @BrianBland, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution! TTYL, MSBOT; |
@BrianBland, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR. |
ad1d31f
to
77fc6c1
Compare
@BrianBland thanks for the pull request. LGTM. It looks like there's something funny going on about our storage tests. @colemickens have you changed something lately? |
@ahmetalpbalkan it looks like I need to change some things up to support the new signing code as of version 2015-02-21 (see https://msdn.microsoft.com/en-us/library/azure/mt584141.aspx) |
@BrianBland oh that explains the problem. We were actually planning to switch on SharedKeyLite signing (which is way simpler, doesn't have Content-Length either). If you don't mind making the change to work with |
77fc6c1
to
8b895e7
Compare
Hopefully you don't mind the repeated push trial and error with the CI system. I'm temporarily locked out of my Azure account 😞 |
8b895e7
to
13754a9
Compare
@ahmetalpbalkan if you have any idea why |
@BrianBland oh that's just comparing a precomputed signature with the algorithm's output. You just need to change the hard-coded computed value with the result of then modified algorithm. |
@ahmetalpbalkan I think you're referring to |
13754a9
to
d0f4ba4
Compare
Apparently the canonicalizedResource for the presigned blob urls must begin with "/blob", even though the documentation suggests that it should begin with "blob" |
@BrianBland I'll follow up on that. Might be a docs issue indeed. |
uri := b.client.getEndpoint(blobServiceName, path, url.Values{}) | ||
headers := b.client.getStandardHeaders() | ||
headers["x-ms-blob-type"] = string(BlobTypeAppend) | ||
headers["Content-Length"] = "0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@BrianBland Hmm, I don't think you will still need this header now that you updated buildCanonicalizedString
with
+ contentLength := headers["Content-Length"]
+ if contentLength == "0" {
+ contentLength = ""
+ }
In fact, there should be more occurrences of headers["Content-Length"] = "0"
in this file, I think we can remove all those if you don't mind doing this in PR as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No worries, removed all of those
Adds PutAppendBlob and AppendBlock methods Changes DefaultAPIVersion to 2015-02-21 Updates storage client signing code to support newer version Signed-off-by: Brian Bland <brian.bland@docker.com>
d0f4ba4
to
e08041f
Compare
@BrianBland thanks LGTM! |
[storage] Add support for Append Blobs, storage version changed to 2015-02-21
@BrianBland hi there, just circling back on the docs issue https://msdn.microsoft.com/en-us/library/azure/dn140255.aspx I see that it says |
I thought so, but at least it looks correct now |
Adds PutAppendBlob and AppendBlock methods
Addresses #275