我将图像存储在 Azure 存储上。但是存储图像后,当我尝试访问 bob url 时,它给了我访问被拒绝的错误。
我的代码:
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 门户编辑它们。如果还有其他问题,请告诉我。
编辑:
错误 - 可疑操作:尝试访问“blob url”被拒绝。
最佳答案
根据我的经验,此问题的原因可能是您的代码对本地站点目录进行了一些可疑的访问。您可以通过运行以下代码来测试是否可以获取图像 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);
您可以通过以下网址查找问题所在。
Django SuspiciousOperation at /upload/ when uploading a file
django suspicious operation on image upload
希望有帮助。如有任何疑问,请随时告诉我。
关于python - Azure 存储访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39699809/