2016-09-26 4 views
0

Ich speichere Bilder auf Azure-Speicher. BUt nach dem Speichern von Bildern, wenn ich versuche, auf Bob URL zugreifen, gibt es mir Zugriff verweigert Fehler.Zugriff auf Azure-Speicher verweigert

Mein Code:

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() 

Ich bin nicht sicher, aber ich denke, brauchen CORS Einstellungen meiner Speicher zu bearbeiten, aber ich bin nicht in der Lage, um herauszufinden, wo sie vom azur Portal zu bearbeiten. Wenn etwas anderes nicht stimmt, dann lass es mich bitte wissen.

EDIT:

ERROR - SuspiciousOperation: Versuchte Zugang zu 'Blob url' verweigert.

+0

Können Sie den genauen Fehler posten? FWIW, ich glaube nicht, dass es etwas mit CORS zu tun hat. CORS kommt ins Bild, wenn Sie über JavaScript auf Speicher zugreifen. –

+0

Dies sieht wie eine Python/Django-Ausnahme aus: https://docs.djangoproject.com/en/1.10/ref/exceptions/. –

+0

@GauravMantri Ja ist es eine Django-Ausnahme, aber es versucht, auf ein Bild auf azurblau zuzugreifen, so muss azur den Zugriff – user5594493

Antwort

0

Nach meiner Erfahrung kann der Grund für dieses Problem sein, dass Ihr Code verdächtigen Zugriff auf das lokale Site-Verzeichnis hat. Sie können testen, ob Sie die Bild-URL erhalten, indem Sie den folgenden Code ausführen. Wenn Sie die Bild-URL in der Konsole sehen, zeigt dies an, dass Sie Zugriff auf Ihren azurblauen Speicher haben. Wenn nicht, lass es mich wissen.

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); 

Sie können finden können, was das Problem mit der folgenden URLs ist.

Django SuspiciousOperation at /upload/ when uploading a file

django suspicious operation on image upload

Hoffe, es hilft. Irgendwelche Bedenken, bitte zögern Sie nicht, lassen Sie es mich wissen.