相关疑难解决方法(0)

如何在 Python 中为 Azure Blob 存储 SAS 令牌生成签名?

我正在尝试按照MSDN的说明在 Python 中构建 blob 下载 URL 所需的 SAS 令牌。

我要签名的字符串如下所示:

r\n
2016-12-22T14%3A00%3A00Z\n
2016-12-22T15%3A00%3A00Z\n
%2Fblob%2Fmytest%2Fprivatefiles%2F1%2Fqux.txt\n
\n
\n
https\n
2015-12-11\n
\n
\n
\n
\n
_
Run Code Online (Sandbox Code Playgroud)

为了清楚起见,我添加了换行符,最后一行应该是一个空行(末尾没有换行符)。

我用于对字符串进行签名的 Python 方法是:

def sign(self, string):
    hashed = hmac.new(base64.b64decode(self.account_key), digestmod=sha256)
    hashed.update(string)
    base64_str = base64.encodestring(hashed.digest()).strip()
    return base64_str
Run Code Online (Sandbox Code Playgroud)

我构建的最终 URL 如下所示:

https://mytest.blob.core.windows.net/privatefiles/1/qux.txt?sv=2015-12-11&st=2016-12-22T14%3A00%3A00Z&se=2016-12-22T15%3A00%3A00Z&sr= b&sp=r&spr=https&sig=BxkcpoRq3xanEHwU6u5%2FYsULEtOCJebHmupUZaPmBgM%3D

仍然,URL 失败并显示 403。知道我做错了什么吗?

python authentication azure azure-storage-blobs

4
推荐指数
4
解决办法
8514
查看次数