2012-03-15 12 views
14

Mam aplikację internetową Codeigniter, która co godzinę przesyła wiele małych plików do Amazon S3, co powoduje, że moje żądania dotyczące S3 są uruchamiane naprawdę szybko. Jednym ze sposobów na pokonanie tego problemu jest skompresowanie pliku, przesłanie pliku zip do S3, a następnie rozpakowanie go, gdy jest na S3.Przesyłanie pliku ZIP do S3, użyj narzędzia EC2 do rozpakowania.

Czy można to zrobić za pomocą EC2? Czy istnieje lepsza metoda, aby to osiągnąć? Dziękuję Ci!!

EDYCJA: Jeśli miałbym używać EC2, to czy używam PHP, aby uruchomić tworzenie instancji EC2, załadowałem plik PHP wymagany do rozpakowania spakowanych plików, skopiuję nieskompresowane pliki do S3, a następnie zniszczę instancję EC2?

+0

nie można przechowywać pliki spakowane na S3? –

+0

Chcę, aby pojedyncze rozpakowane pliki były dostępne na S3. Powodem skompresowania (100 małych plików do 1 pliku zip) jest zmniejszenie liczby żądań typu "PUT", które znacząco zwiększają koszty użytkowania S3. – Nyxynyx

+1

Przesyłanie plików ZIP do S3 i ich rozpakowywanie w EC2 w celu obniżenia kosztów nie pomoże: kosztowałoby to dla Ciebie żądanie PUT dla każdego rozpakowanego pliku przychodzącego do S3 z EC2. – Daan

Odpowiedz

23

Jeśli posiadasz maszynę EC2 w tym samym regionie, sugerowałbym, abyś ją załadował i skompresował, a następnie upuść ją do s3 z tego rozpakowanego. S3 nie może rozpakować go samodzielnie, ponieważ jest cały statyczny.

Nie ma opłat między ec2 i s3, więc ec2 może obsłużyć rozpakowanie, a następnie zapisać go do swojego kubełka S3 bez dodatkowych opłat za przesyłanie.

+2

Przepustowość jest bezpłatna, ale zapłacisz za PUT (obecnie 0,005 $ za 1000 żądań). Jeśli masz plik zip zawierający 10 000 małych plików, przesyłanie będzie kosztować coś, a co ważniejsze, potrwa to trochę dłużej. – Ben

+1

Drogi @Akshat, proszę udostępnij link lub kod, aby napisać folder (który został właśnie rozpakowany) do S3 z EC2, jeśli masz to, Byłoby to bardzo docenione –

2

S3 to po prostu miejsce do przechowywania. Niezależnie od przesłanego pliku jest przechowywany plik. Nie możesz przesłać pliku zip, a następnie wyodrębnić go po jego uruchomieniu w S3. Jeśli napisałeś aplikację, najlepszą rzeczą, jaką mogę powiedzieć, jest próba ponownego zaprojektowania sposobu przechowywania plików. Żądania S3 są dość tanie ... musisz składać dużo wniosków.

2

Używam tej usługi do rozpakowywania plików zawierających tysiące małych plików graficznych, każdy przesyłany zip jest około 4 GB i kosztuje około 1 $, aby rozpakować przy użyciu http://www.cloudzipinc.com/service/s3_unzip, może to może pomóc komuś.

Powiedziawszy to, możesz łatwiej korzystać z Pythona w bibliotece Boto. To zadziała znacznie wydajniej niż PHP.

Powiązane problemy