2016-09-26 110 views
0

我正在将图像存储在Azure存储上。在我尝试访问bob url时存储图像后,它会给我访问拒绝错误。访问被拒绝Azure存储

我的代码:

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设置,但我无法揣摩出从蔚蓝的门户网站编辑。如果还有其他问题,那么请让我知道。

编辑:

错误 - SuspiciousOperation:尝试访问被拒绝 '一滴网址'。

+0

你能发表确切的错误吗? FWIW,我认为它与CORS没有任何关系。当您通过JavaScript访问存储时,CORS会进入画面。 –

+0

这看起来像Python/Django异常:https://docs.djangoproject.com/en/1.10/ref/exceptions/。 –

+0

@GauravMantri是它的django例外,但它试图访问一个图像在天蓝色,所以天蓝色必须拒绝访问 – user5594493

回答

0

根据我的经验,此问题的原因可能是您的代码对本地站点目录执行了一些可疑访问。您可以通过运行以下代码来测试您是否可以获取图像URL。如果您可以在控制台中看到图片网址,则表示您可以访问您的天蓝色存储。如果没有,请让我知道。

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

希望它能帮助。任何疑虑,请随时让我知道。