J'ai créé un jeton SAS (Shared Access Signature) sur mon compte de stockage Azure à l'aide de l'interface Web. Le jeton ressembleAzure Blob Store SAS jeton manquant Champ de ressource de service
?sv=xxxx-xx-xx&ss=b&srt=sco&sp=rl&se=xxxx-xx-xxTxx:xx:xxZ&st=xxxx-xx-xxTxx:xx:xxZ&spr=https&sig=xxxxxxxxxxxxxxxxxxxxxx
Le jeton SAS est ici, le champ sr
pour le service des ressources. Je dois ajouter manuellement le sr=b
à la chaîne de requête pour que les choses fonctionnent. Je dois faire quelque chose de mal, parce que cela semble extrêmement difficile.
from azure.storage.blob import BlockBlobService
sas_token = "?sv=xxxx-xx-xx&ss=b&srt=sco&sp=rl&se=xxxx-xx-xxTxx:xx:xxZ&st=xxxx-xx-xxTxx:xx:xxZ&spr=https&sig=xxxxxxxxxxxxxxxxxxxxxx"
sas_token = "?sr=b&" + sas_token[1:]
serv = BlockBlobService(account_name='myaccount', sas_token=sas_token)
for cont in serv.list_containers():
print cont.name
Sans sas_token = "?sr=b&" + sas_token[1:]
je reçois l'erreur:
sr is mandatory. Cannot be empty
Et si le champ sr=b
est pas d'abord dans la requête, je reçois une erreur d'authentification comme
Access without signed identifier cannot have time window more than 1 hour
Quelle version du SDK Python utilisez-vous? –
J'utilise python 2.7.6 et azure-storage 0.34.3 –