2013-05-28 17 views
8

Próbowałem pobrać plik z wiadra na Amazon S3. Zastanawiam się, czy mogę napisać javascript, aby pobrać taki plik z wiadra. Badałem go, ale nie mogłem znaleźć żadnych zasobów, które mogłyby mi w tym pomóc.Javascript, aby pobrać plik z amazon s3 bucket?

Oto kilka kroków: uwierzytelnij Amazon S3, a następnie podaj nazwę wiadka i plik (klucz), pobierz lub przeczytaj plik, aby móc wyświetlić dane w pliku.

Dzięki,

+0

można użyć atrybutu pobierania na tagu do wyzwalania pobieranie zamiast nawigacji. – dandavis

+0

, ale to nie jest takie proste, ponieważ musimy radzić sobie z danymi uwierzytelniającymi Amazon S3? – c0mrade

+1

tak długo, jak użytkownik jest "w", będzie działał dobrze. ciasteczka przechowują je przez pewien czas, więc nie musisz być na stronie html S3, aby link działał ... jeśli potrzebujesz pomocy w zakresie uwierzytelniania, to jest naprawdę inne pytanie, ale musisz na nie odpowiedzieć zautomatyzować pobieranie za pomocą javascript. – dandavis

Odpowiedz

16

Być może używać AWS Node.js API:

var AWS = require('aws-sdk'); 
AWS.config.update(
    { 
    accessKeyId: ".. your key ..", 
    secretAccessKey: ".. your secret key ..", 
    } 
); 
var s3 = new AWS.S3(); 
s3.getObject(
    { Bucket: "my-bucket", Key: "my-picture.jpg" }, 
    function (error, data) { 
    if (error != null) { 
     alert("Failed to retrieve an object: " + error); 
    } else { 
     alert("Loaded " + data.ContentLength + " bytes"); 
     // do something with data.Body 
    } 
    } 
); 
+0

Dzięki! Myślę, że AWS Node.js jest dokładnie tym, czego szukam. – c0mrade

+2

Oto bezpośredni link do [s3.getObject] (http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property) w interfejsie API AWS Node.js dla zainteresowanych. –

+0

Dla każdego, kto chce wiedzieć, 'data.Body' jest nieprzetworzonym plikiem i może być użyty w innych modułach takich jak graphicsmagick:' gm (data.Body) .identify (function (err, value) {}); ' Całkiem fajne! –