2017-10-24 3 views
0

EDIT: Ich bin auf der Suche nach einem Blob von einem Azure Storage Container in mein Python-Skript über eine BLOB-specific SAS zu importieren.Importieren von azure Blob über SAS in Python

from azure.storage.blob import BlobService 

sas_service = BlobService(
    account_name = "name", 
    sas_token = "mytoken" 
) 

blob_content = sas_service.get_blob_to_path("container_name", "blob_name") 

Ich versuchte dies mit, aber es gibt einen OSError Eintrag auch einen "Fehler 503"

+0

Welche Art von SAS-Token ist das? Ein Konto SAS? Eine containerspezifische SAS? Auch: Was meinst du mit "es funktioniert nicht"? Haben Sie eine Fehlermeldung erhalten? Gerade jetzt, wie geschrieben, ist diese Frage unklar. Bitte editieren Sie entsprechend. –

+1

Hinweis: 503 ist ein HTTP-Statuscode. Zum googlin ' –

+0

Sie haben Ihre Frage bearbeitet, um einen BLOB-spezifischen SAS zu erwähnen. Das wäre der Kern Ihres Problems. Sie versuchen, den BLOB-Dienstclient mit einem SAS zu initialisieren, der nichts mit der Authentifizierung auf Serviceebene zu tun hat. –

Antwort

1

Entsprechend Ihrer Beschreibung möchten Sie access azure blob storage über SAS_TOKEN.

Sie auf den Code-Schnipsel wie unten Bezug nehmen könnte funktioniert für mich:

from datetime import datetime, timedelta 
import requests 
from azure.storage.blob import (
    BlockBlobService, 
    ContainerPermissions, 
) 

accountName = "<your_account_name>" 
accountKey = "<your_account_key>" 
containerName = "<your_container_name>" 
blobName = "<your_blob_name>" 

def GetSasToken(): 
    blobService = BlockBlobService(account_name=accountName, account_key=accountKey) 
    sas_token = blobService.generate_container_shared_access_signature(containerName,ContainerPermissions.READ, datetime.utcnow() + timedelta(hours=1)) 
    return sas_token 


def AccessTest(token): 
    blobService = BlockBlobService(account_name = accountName, account_key = None, sas_token = token) 
    blobService.get_blob_to_path(containerName,blobName,"E://test.txt") 


token=GetSasToken() 
print token 
AccessTest(token) 

Sie auch weitere Informationen von official tutorial beziehen könnte.

Ich hoffe, es hilft Ihnen.

Verwandte Themen