J'essaie de faire une demande PUT pour créer un nouveau BLOB. Après quelques problèmes initiaux avec l'en-tête d'autorisation, j'obtiens maintenant une erreur 404 Resource Not Found lorsque j'essaie de METTRE un fichier dans un conteneur.
Je suis plutôt certain d'avoir l'URL correcte:
https://accountNameHere.blob.core.windows.net/containerNameHere
J'ai vérifié et revérifié pour m'assurer que j'inclus le nom du conteneur et le nom du compte, et ils sont tous les deux corrects.
Que pourrait-il y avoir d'autre (à part la possibilité distincte que je fasse tout mal)?
Modifier pour ajouter:
Voici les en-têtes de demande bruts:
PUT /testss HTTP/1.1
Host: accountName.blob.core.windows.net
Accept: */*
Connection: Keep-Alive
0: content-encoding
1: content-language
2: content-length
3: content-md5
4: content-type
5: date
6: if-modified-since
7: if-match
8: if-none-match
9: if-unmodified-since
10: range
x-ms-blob-type: BlockBlob
x-ms-version: 2011-08-18
x-ms-date: Fri, 09 Aug 2013 04:17:59 GMT
Content-Length: 126377
Authorization: SharedKey accountName:MBVLmoxzxZr+tf8EZw2GkbFLEHuNn8FNAaEHrcty/cM=
Expect: 100-continue
Voici la chaîne pour signer que j'ai envoyée:
PUT x-ms-blob-type:BlockBlob x-ms-date:Fri, 09 Aug 2013 04:03:20 GMT x-ms-version:2011-08-18 /accountName/test
Et voici ce qu'ils attendaient:
PUT 126377 x-ms-blob-type:BlockBlob x-ms-date:Fri, 09 Aug 2013 04:02:17 GMT x-ms-version:2011-08-18 /accountName/test
La seule différence entre les deux est le 126377
après PUT
. C'est la longueur du contenu du fichier, je ne sais pas comment le supprimer.
Avez-vous vérifié les paramètres de sécurité du conteneur Blob? Il se peut que vous n'ayez pas suffisamment de droits d'accès.
Vérifiez votre conteneur. Dans le nouveau portail, cliquez sur les ellipses à côté de lui et sur Modifier. Définissez ensuite le type d'accès sur Blob ou Conteneur si vous souhaitez autoriser la liste du conteneur.
Microsoft semble avoir renforcé la sécurité et rendu les nouveaux conteneurs privés par défaut.
1 - Dans l'application Azure Storage Explorer , procédez comme suit pour modifier/vérifier l'accès.
Set Public Access Level
Public read access for blobs only
.[~ # ~] ou [~ # ~] 2 - ou Dans le panneau du portail Azure, sélectionnez
Storage account
>Blob service
Section Sélectionnez "Blob
">Access policy
">Blob
" ou "Container
" un accès anonyme en fonction de vos besoinsVous devez utiliser Fiddler pour vérifier que vous envoyez la demande que vous pensez être. Vous pouvez ensuite comparer la demande Fiddler avec la documentation.
Le conteneur existe-t-il déjà? Il vaut la peine d'utiliser un explorateur de stockage tiers pour vérifier qu'il le fait.