2013-08-09 11 views
22

Próbuję wykonać żądanie PUT, aby utworzyć nowy obiekt BLOB. Po początkowych kłopotach z nagłówkiem Authorization otrzymuję komunikat błędu 404 Resource Not Found, gdy próbuję umieścić PUT w kontenerze.Dlaczego usługa Azure nie zwraca 404 zasobów w odpowiedzi na żądanie typu blob PUT?

czuję raczej pewne, że mam prawo URL:

https://accountNameHere.blob.core.windows.net/containerNameHere

Sprawdziłem i ponownie sprawdzane, aby upewnić się, że jestem w tym nazwę kontenera oraz nazwę konta, a oni Oba poprawne.

Co jeszcze może być przyczyną tego (pomijając wyraźną możliwość, że robię to wszystko źle)?

Edycja do dodania:

Oto surowe nagłówki żądania:

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 

Oto ciąg do podpisania, że ​​wysłałem:

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 

I tu jest to, czego oczekuje:

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 

T jedyną różnicą między tymi dwoma jest 126377 po PUT. To jest długość zawartości pliku, po prostu nie jestem pewien, jak go usunąć.

Odpowiedz

0

Powinieneś użyć Fiddler, aby potwierdzić, że wysyłasz wniosek, który Twoim zdaniem jest. Następnie możesz porównać żądanie Fiddlera z dokumentacją.

Czy kontener już istnieje? Warto skorzystać z zewnętrznego eksploratora pamięci, aby to sprawdzić.

+0

Po zainstalowaniu Fiddlera, zaraz po uruchomieniu dam ci znać, co znajdę. Tak, kontener już istnieje, stworzyłem go ręcznie. – user1091949

+0

właśnie edytował pytanie z informacją od Fiddlera. Dziękuję za pomoc w tej sprawie. – user1091949

+0

Wyliczyłem to. Zestaw SDK PHP firmy Microsoft jest absolutnie przerażający. To naprawdę okropne. Oni są winni. Pracuję nad naprawieniem tego, a następnie prześlę wnioski o odesłanie. Dzięki za pomoc. – user1091949

19

Sprawdziłeś ustawienia zabezpieczeń kontenera Blob. Możliwe, że nie masz wystarczających praw dostępu.

+3

sprawdź 'Usługa Blob> Kontener> Zasady dostępu' – Yar

+0

Ty da man. Dzięki. –

8

Sprawdź swój pojemnik. W nowym portalu kliknij elipsy obok niego i Edytuj. Następnie ustaw Typ dostępu na Blob lub Kontener, jeśli chcesz zezwolić na wpisanie kontenera.

Microsoft najwyraźniej podważył bezpieczeństwo i domyślnie utworzył nowe kontenery jako prywatne.

+0

Dziękuję bardzo za tę odpowiedź. Walczyłem o to, dlaczego mogłem zobaczyć Bloba w moim kontenerze, ale nie mogłem trafić adresu URL i pobrać go w przeglądarce. Jaka jest różnica między typem dostępu "Blob" a "Kontenerem", czy wiesz o tym? –

+0

@PhilipTenn Blob oznacza, że ​​obiekt typu blob jest publiczny, ale nie jest kontenerem, Kontener oznacza, że ​​zarówno kontener, jak i obiekty blob są publiczne. – stuartdotnet

Powiązane problemy