SORU
11 Temmuz 2013, PERŞEMBE


Amazon S3 istemci tarayıcı doğrudan dosya upload - özel anahtar açıklama

Amazon REST API üzerinden S3 için istemci makineden doğrudan dosya upload sadece JavaScript, sunucu tarafı kod olmadan kullanarak oluşturuyorum. Tüm iyi çalışır ama bir şey beni endişelendiriyor

Ben Amazon için bir istek göndermek S3 REST API isteği ve işareti Authentication başlık içine bir imza koymak istiyorum. Bir imza oluşturmak için, gizli anahtarımı kullanmak zorundayım. Ama her şeyin bir istemci tarafında olur, gizli anahtarı, kolayca sayfa kaynağını ben kaynaklarımı şifrelemek/karartmak (bile) ortaya çıkarılabilir.

Bunu nasıl halledebilir miyim? Ve hiç de bir sorun mu var? Belki özel anahtar kullanımı yalnızca belirli bir İSTASYONDAN bir kaynaktan API çağrıları DİNLENMEK ve tek ve POST yöntemleri veya sadece S3 ve belirli bir kova için anahtar bağlantı KOYMAK belki sınır miyim? Başka bir kimlik doğrulama yöntemi vardır olabilir?

"Sunucusuz" çözüm ideal değildir, ama bazı sunucu taraflı işlemeyle ilgili, benim sunucuya dosya yükleme hariç düşünebilirim ve S3 için gönderdiler.

CEVAP
15 Temmuz 2013, PAZARTESİ


Tarayıcı Tabanlı istediğinizi Kullanarak YAZI Yüklemeler düşünüyorum.

Temel olarak, sunucu tarafı kod gerekiyor, ama yok tüm imzalı politikalar üretiyor. -Yan istemci kod imzalı politikası, doğrudan veri server geçmeden S3 için POST kullanarak yükleyebilirsiniz.

İşte resmi belge bağlantıları:

Diyagram: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingHTTPPOST.html

Örnek kod: http://docs.aws.amazon.com/AmazonS3/latest/dev/HTTPPOSTExamples.html

İmzalı politikası şöyle: bir form içinde html giderdim

<html>
  <head>
    ...
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    ...
  </head>
  <body>
  ...
  <form action="http://johnsmith.s3.amazonaws.com/" method="post" enctype="multipart/form-data">
    Key to upload: <input type="input" name="key" value="user/eric/" /><br />
    <input type="hidden" name="acl" value="public-read" />
    <input type="hidden" name="success_action_redirect" value="http://johnsmith.s3.amazonaws.com/successful_upload.html" />
    Content-Type: <input type="input" name="Content-Type" value="image/jpeg" /><br />
    <input type="hidden" name="x-amz-meta-uuid" value="14365123651274" />
    Tags for File: <input type="input" name="x-amz-meta-tag" value="" /><br />
    <input type="hidden" name="AWSAccessKeyId" value="AKIAIOSFODNN7EXAMPLE" />
    <input type="hidden" name="Policy" value="POLICY" />
    <input type="hidden" name="Signature" value="SIGNATURE" />
    File: <input type="file" name="file" /> <br />
    <!-- The elements after this will be ignored -->
    <input type="submit" name="submit" value="Upload to Amazon S3" />
  </form>
  ...
</html>

Aksiyon dosya gönderme FORMU dikkat edindoğrudan S3 için- sunucu üzerinden.

Her zaman eğer kullanıcı bir dosya yüklemek istiyor, sunucunuz üzerinde POLICY SIGNATURE oluşturacak. Seni kullanıcının tarayıcısına cevap verin. Kullanıcı daha sonra bir dosya doğrudan sunucu geçmeden S3 yükleyebilir.

Politika oturum açtığınızda, genellikle politika birkaç dakika sonra sona erecek. Bu kullanıcılar yüklemeden önce sunucu ile konuşmaya zorlar. Bu eğer arzu ederseniz ve yüklemeler izlemek sınırlamak sağlar.

Tek veri veya sunucunuza giden imzalı URL. Gizli anahtarları sunucu üzerinde gizli kalmak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Christian Atlas

    Christian At

    26 Mart 2009
  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011