2012-06-08 11 views
15

Mam plik na Amazon S3 z przyrostkiem ".bin.gz". Chcę, aby przeglądarki internetowe traktowały to jako spakowany plik HTML. Tak, jestem w stanie przejść do konsoli internetowej Amazon S3 (https://console.aws.amazon.com/s3/home) i przejść do pliku i wybrać go. Tam, w ramach właściwości, mogę przejść do zakładki Metadane i dodać następujące dyrektywy:Próba ustawienia metadanych w pliku Amazon S3 przy użyciu s3cmd

Content-Type: text/html 
Content-Encoding: gzip 

Działa to zgodnie z oczekiwaniami. To łatwa część.

Teraz chciałbym zrobić to samo z setkami (lub prawdopodobnie milionami) plików w czasie, gdy są one PUT na S3.

Próbowałem używać opcji s3cmd z opcją , ale to daje mi błąd sygnatury podczas próby ustawienia typu zawartości. Ponadto jestem całkiem pewny, że zrobienie tego będzie miało wpływ tylko na nagłówki wysyłane w czasie operacji PUT, a nie na metadane przechowywane w dokumencie.

Poszukuję więc sposobu na zrobienie tego, najlepiej przy pomocy s3cmd. Jeśli to nie jest możliwe, byłbym wdzięczny, gdyby ktoś mógł zasugerować bibliotekę Pythona, która jest w stanie zastosować metadane do pliku na s3.

Musi być sposób, aby to zrobić bez konieczności ręcznego ustawiania go w konsoli.

Odpowiedz

22

Zastosowanie -m określania typu MIME (która zostanie wysłana jako nagłówek Content-Type na kolejne żądania.

s3cmd -m text/html --add-header='Content-Encoding: gzip' put [files] s3://... 
+1

Dzięki za szybką odpowiedź Próbowałem tego i typ zawartości przesłanego pliku pozostaje "application/octet-stream" – chaimp

+1

Mam to, dziękuję! Potrzebowałem tylko zmienić 'guess_mime_type = False' w moim pliku konfiguracyjnym s3 – chaimp

+0

@jeffp Tak, myślę, że już mam to ustawienie jako' False'. Prawdopodobnie możesz określić flag, aby nie odgadywać typu MIME za każdym razem, gdy uruchomisz to polecenie, jeśli chcesz domyślnie pozostawić to ustawienie .. – Paulpro

Powiązane problemy