2009-01-26 10 views
15

W odniesieniu do tego pytania, Upload files directly to Amazon S3 from ASP.NET application, czy jest jakiś sposób, aby to zrobić i mieć pasek postępu?Prześlij plik bezpośrednio do S3 z paskiem postępu

---- EDIT ----

Dwa dni później i nadal nie ma szczęścia w sposób bezpośredni. Znaleziono jedną rzecz, która wygląda obiecująco, ale nie za darmo: http://www.flajaxian.com/

Używa lampy błyskowej do przesyłania bezpośrednio do S3 z paskiem postępu.

+1

Flajaxian wydaje się być teraz wolny – BigJoe714

+0

@ BigJoe714 dzięki za informacje! –

+0

Łatwo jest uzyskać pasek postępu, jeśli przesyłasz bezpośrednio z powiedzmy JS przy użyciu zdarzenia httpUploadProgress. pasek postępu JS-> PHP-> S3? – trainoasis

Odpowiedz

4

Szukam również rozwiązania. Może to będzie pomocne,

From AWS Dev Commnity Ale w wielu językach (PHP, Java), na dużych plików, trzeba używać strumieni dzięki którym środowisko język odbędzie kawałki dużym pliku jeden po drugim (w celu wypełnienia się centralną pamięć z ogromną ilością danych dla hTTP POST S3 potrzebne za upload.

zaletą strumienia jest to, że mają zwrotnego nazywa ilekroć następna porcja jest czytana dla dalszych danych PUT (w sensie https) do S3. Możesz użyć tego wywołania zwrotnego do obliczenia i wyświetlić postęp w interfejsie klienta .

Zobacz dokumentację libcurl, aby zobaczyć w szczegóły, jak to wszystko działa.


Aktualizacja: Wygląda na to są dwie proste opcje.

  1. Flash, via the FileReference class
  2. With a Java applet

ja osobiście nienawidzę użyciu 3rd rozszerzeń firm (Flash, Java), aby funkcję aplikacji, ale nie znalazłem inny sposób.

+0

Czy zastanawiałeś się nad wykorzystaniem API plików W3C dostępnego w niektórych przeglądarkach?Jakie były twoje wnioski, jeśli tak? – Quickredfox

+0

Nie próbowałem tego – Blaine

-2

Innym podejściem jest użycie czegoś w rodzaju Uber Uploadera (http://uber-uploader.sourceforge.net/), który jest rozwiązaniem hybrydowym perl/php z paskiem postępu. Wystarczy przesłać pliki na serwer, a następnie serwer FTP je w tle do ostatecznego miejsca docelowego. Jest to dodatkowy krok, ale daje ci trochę czasu na przetwarzanie/kodowanie/itd., Które możesz wykonać przed wysłaniem do S3.

Powiązane problemy