我正在Azure存储上存储图像。在我尝试访问bob url时存储图像后BUt它给了我访问被拒绝错误。
我的代码:
block_blob_service = BlockBlobService(account_name=ACCOUNT_NAME, account_key=ACCOUNT_KEY)
block_blob_service.create_container('organisation', public_access=PublicAccess.Container)
org = Organisation.objects.get(pk=34)
image = download_image(org.org_logo.url)
bob = block_blob_service.create_blob_from_path(
'organisation',
org.name,
image,
content_settings=ContentSettings(content_type='image/png')
)
image_url = block_blob_service.make_blob_url('organisation', org.name) **# same url is accessible via browser but not from script**
org.org_logo = image_url **# this is giving error of access denied**
org.save()
我不确定,但我认为需要编辑存储的CORS设置,但我无法确定从azure portal编辑它们的位置。如果还有其他问题,请告诉我。
编辑:
错误 - SuspiciousOperation:尝试访问'blob url'被拒绝。
答案 0 :(得分:0)
根据我的经验,出现此问题的原因可能是您的代码对本地站点目录进行了一些可疑访问。您可以通过运行以下代码来测试是否可以获取图像URL。如果您可以在控制台中看到图像URL,则表示您可以访问您的azure存储。如果没有,请告诉我。
from azure.storage.blob import BlockBlobService
from azure.storage.blob import PublicAccess
from azure.storage.blob import ContentSettings
block_blob_service = BlockBlobService(account_name=ACCOUNT_NAME, account_key=ACCOUNT_KEY)
block_blob_service.create_container('newcontainer', public_access=PublicAccess.Container)
block_blob_service.create_blob_from_path(
'newcontainer',
'myblockblob',
'C:\myimages\image.jpg',
content_settings=ContentSettings(content_type='image/jpg')
)
image_url = block_blob_service.make_blob_url('newcontainer', "myblockblob")
print(image_url);
您可以通过以下URL找到问题所在。
Django SuspiciousOperation at /upload/ when uploading a file
django suspicious operation on image upload
希望它有所帮助。如有任何疑虑,请随时告诉我。