2012-09-29 20 views
11

Jeśli prześlę plik do S3 z nazwą identyczną z nazwą pliku obiektu w wiadrze, zostanie on nadpisany. Jakie istnieją opcje, aby uniknąć nadpisywania plików o identycznych nazwach plików? Włączyłem wersjonowanie do mojego zasobnika, myśląc, że to rozwiąże problem, ale obiekty są nadal nadpisywane.Amazon S3 unikaj nadpisywania obiektów o tej samej nazwie

+0

Nie jestem pewien, ale czy nie można ustawić listy ACL na tylko do odczytu dla tego obiektu? Mam na myśli, dla każdego przesłanego obiektu. – Prinzhorn

+0

Ustawiam ACL jako publiczny, ponieważ pliki mogą być widoczne dla każdego. – CyberJunkie

Odpowiedz

6

Mój komentarz z powyższego nie działa. Sądziłem, że ACL będzie również dotyczyć obiektów, ale działa tylko na wiadrach.

Od włączenia wersji, twoje obiekty nie są zastępowane. Jeśli jednak nie określisz wersji w żądaniu GET lub adresie URL, zostanie pobrana najnowsza wersja. Oznacza to, że kiedy wstawiasz i obiektujesz do S3, musisz zapisać identyfikator wersji, który odpowiedź powie Ci w celu pobrania pierwszego obiektu.

Więcej informacji na stronie Amazon S3 ACL for read-only and write-once access.

+0

Dziękujemy! Spróbuję tego. – CyberJunkie

2

Można również skonfigurować użytkownika IAM z ograniczonymi uprawnieniami. Napisy są wciąż zapisywane (tzn. Aktualizacje), ale używanie IAM jest najlepszą praktyką.

Właściciel (tj. Twój "klucz dostępu długoterminowego i tajny klucz") zawsze ma pełną kontrolę, chyba że całkowicie się z niego wyłączysz, aby go wyłączyć.

+0

Dzięki, że nie pomyślałem o tym. Użytkownik, który nie może zaktualizować/zastąpić, byłby idealny, gdybym mógł go skonfigurować w AWS. – CyberJunkie

+1

Będziesz musiał dokładnie sprawdzić dokumentację. Nie wiem, czy S3 rozumie różnicę między _write_ a _update_. Wiem, że domyślnie (tj. Pełne uprawnienia), zapisy i aktualizacje są traktowane jako to samo. –

1

Oto moja sugestia, jeśli używasz DB do przechowywania klucza każdego pliku w Twoim wiadrze s3.

Generowanie losowego klucza. Spróbuj wstawić/zaktualizować klucz DB, w polu z ograniczeniem UNIQUE, które zezwala na wpis o wartości pustej. Jeśli się nie uda, klucz został użyty, powtarzaj, aż otrzymasz unikatowy klucz.

Następnie umieść plik na s3 za pomocą klucza, który jest wyjątkowy.

Powiązane problemy