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

希望它能幫助。任何疑慮,請隨時讓我知道。