web-dev-qa-db-fra.com

«Ressource 404 introuvable» du document de stockage Azure Blob de PUT

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.

30
user1091949

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.

25
Boudewijn van Veen

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.

11
stuartdotnet

1 - Dans l'application Azure Storage Explorer , procédez comme suit pour modifier/vérifier l'accès.

  1. Faites un clic droit sur le blob du conteneur en question
  2. Sélectionnez Set Public Access Level
  3. Définissez au moins Public read access for blobs only.
  4. Appliquer.

enter image description here


[~ # ~] ou [~ # ~] 2 - ou Dans le panneau du portail Azure, sélectionnez

  • Storage account>
  • de Blob service Section Sélectionnez "Blob">
  • Sélectionnez Blob ou Blobs dont vous souhaitez modifier l'autorisation d'accès>
  • Sélectionnez "Access policy ">
  • dans le menu déroulant, sélectionnez "Blob" ou "Container" un accès anonyme en fonction de vos besoins
4
ΩmegaMan

Vous 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.

0
Neil Mackenzie