簡體   English   中英

無法使用 sas 令牌訪問 azure blob 存儲

[英]Unable to access azure blob storage with sas token

我正在嘗試從 azure blob 容器存儲下載文件:

  File "/usr/local/lib/python3.9/site-packages/azure/storage/blob/_generated/operations/_container_operations.py", line 1576, in list_blob_hierarchy_segment
    map_error(status_code=response.status_code, response=response, error_map=error_map)
  File "/usr/local/lib/python3.9/site-packages/azure/core/exceptions.py", line 105, in map_error
    raise error
azure.core.exceptions.HttpResponseError: Public access is not permitted on this storage account.

Time:2022-08-01T02:30:21.3842422Z
ErrorCode:PublicAccessNotPermitted

url 的格式:

https://<value>.blob.core.windows.net/<container name>/<filename>/?sv=<key>

下載表單瀏覽器可以正常工作,但不能通過代碼

• 我嘗試使用如下代碼下載存儲在存儲帳戶上的blob,並成功執行,沒有任何錯誤。 此外,我已將此 blob 的訪問級別設置為“私有(無匿名訪問)”,並且僅使用 SAS 令牌從代碼訪問該 blob 因此,如果將其集成到 Kubernetes 集群中,它應該能夠成功執行。

 from urllib.parse import urlparse
 from azure.storage.blob import BlobClient

 sasUrl = "https://********.blob.core.windows.net/demotest/Blocked_2022-08-05_11-52-24_QgEjeAVQqk0R.txt?sp=r&st=2022-08-09T03:31:56Z&se=2022-08-09T11:31:56Z&spr=https&sv=2021-06-08&sr=b&sig=8KWev4nvLbI7CxI%2FD%2F76HgUcYcFym6nk1yJsRE3xp4Y%3D"

  blobNameWithContainer = "demotest/Blocked_2022-08-05_11-52-24_QgEjeAVQqk0R.txt"

  sasUrlParts = urlparse(sasUrl)

  accountEndpoint = sasUrlParts.scheme + '://' + sasUrlParts.netloc

  sasToken = sasUrlParts.query

  blobSasUrl = accountEndpoint + '/' + blobNameWithContainer + '?' + sasToken;

  blobClient = BlobClient.from_blob_url(blobSasUrl);

快照參考:-

代碼執行

代碼參考: -

如何使用 Python 給定 SAS URI 和容器名稱從 Azure Blob 存儲下載文件列表?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM