I'm trying to use AzCopy 5.1.0 to download a single blob from a Blob Storage container using a SAS generated by Storage Explorer:
https://myaccount.blob.core.windows.net/mycontainer/[blob-uuid]?st=2016-11-23T18%3A26%3A00Z&se=2016-11-24T18%3A26%3A00Z&sp=rl&sv=2015-12-11&sr=b&sig=[signature]
azcopy /Source:https://myaccount.blob.core.windows.net/mycontainer /SourceSAS:"?st=2016-11-23T18%3A26%3A00Z&se=2016-11-24T18%3A26%3A00Z&sp=rl&sv=2015-12-11&sr=b&sig=[signature]" /Dest:"c:\data"
If /Source is supposed to be the blob container, and the /SourceSAS is supposed to be the SAS token, then somewhere I need to pass in the actual Blob key ([blob-uuid]).
IMHO, this should be /SourceKey, but specifying my blob key there returns the error: "The supplied storage key (SourceKey) is not a valid Base64 string." This is consistent with the command line help that describes the parameter as the "Storage account key".
The only other candidate I can find is /Pattern, but that seems more for the case of downloading blobs by enumerating through the contents of the container. This seems consistent with the 403 error I get when I specify the exact blob key here; the container is private.
In any case, AzCopy complains that the "Server failed to authenticate the request. Make sure the value of the Authorization header is formed correctly including the signature." This in my experience indicates that the original URI that the SAS signature was generated upon, is not being reconstructed properly.
I am able to use the original SAS URI directly via curl, so it's not a question of the signature being inconsistent.
I've also tried generating the SAS URI programmatically using the SDK so I can specify a Shared Access Policy, but that's not working either. I still think AzCopy needs the missing part of the SAS URI.