SORU
30 Mayıs 2012, ÇARŞAMBA


Nasıl S3 veri deposu ve raylar API / ile güvenli bir şekilde kullanıcı erişim sağlamak için iOS istemci?

Raylar ve API yazmak için yeni duyuyorum. S3 depolama çözümü için yardıma ihtiyacım var. İşte benim sorunum.

Kullanıcılar iOS Facebook API ile giriş nerede bir iOS uygulaması için bir API yazıyorum. Sunucu iOS kullanıcı için token Facebook sorunları karşı kullanıcıyı doğrular ve geçici bir Oturum belirteci verir. Bu noktadan itibaren kullanıcı S3 depolanan içerik indirmek gerekiyor. Bu içerik sadece kullanıcı ve arkadaşları alt aittir. Bu kullanıcı aynı grup tarafından erişilebilen S3 için daha fazla içerik ekleyebilirsiniz. Facebook grubu için bir dosya ekleme benzer sanırım

Orada 2 Yol bir kullanıcı etkileşim ile S3... bırakın sunucu veya sunucu için sorun geçici S3 token (emin değilim olanaklarını burada) ve kullanıcı-ebilmek vurmak içeriği URL doğrudan S3. Bu soruyu yaklaşımlar söz buldum, ancak, çok tarihli (2 yıl önce): Architectural and design question about uploading photos from iPhone app and S3

Soru:

  • Bir şekilde bir kullanıcı bir geçici token kesilirken S3 sadece bazı içeriğe erişmek için bir limit var mı? Bunu nasıl yapabilirim? ... Demek 100,000 veya daha fazla kullanıcı varsayalım.
  • İyi bir fikir iOS cihazı bu içerik çeksin doğrudan mı?
  • Ya da sunucu tüm içeriği geçen (bu tabii ki güvenlik çözer) kontrol izin versin? Bu bağlanan kullanıcılar için aşağı teslim önce sunucuya tüm içeriği indirmek zorunda olduğum anlamına mı geliyor?
  • Eğer raylar biliyorsanız... ataç kullanıyorum ve bölüm-sdk bu tür bir kurulum elde etmek için taşlar?

Birden çok soru için özür dilerim ve ben bu sorunu içine herhangi bir fikir takdir. Teşekkür ederim :)

CEVAP
5 HAZİRAN 2012, Salı


url_for çağırarak herhangi S3 nesne için geçici imzalı bir url alabilirsiniz aws-sdk gem kullanarak:

s3 = AWS::S3.new(
  :access_key_id => 1234,
  :secret_access_key => abcd
)
object = s3.buckets['bucket'].objects['path/to/object']
object.url_for(:get, { :expires => 20.minutes.from_now, :secure => true }).to_s

Bu S3 yalnızca bu nesne için imzalanan geçici kullanım için bir URL verecektir. 20 dakika sonra sona erer (bu örnekte), ve tek bir nesne için iyidir.

Eğer müşteri ihtiyaç duyduğu nesneleri bir sürü varsa, imzalı URL sürü sorun.

Ya da sunucu tüm içeriği geçen (bu tabii ki güvenlik çözer) kontrol izin versin? Bu bağlanan kullanıcılar için aşağı teslim önce sunucuya tüm içeriği indirmek zorunda olduğum anlamına mı geliyor?

Bu sunucu her nesne indirmek için ihtiyacı anlamına gelmez, sadece özel müşteriler S3 belirli nesnelere erişim için kimlik doğrulaması yapılmasını talep ihtiyaçları olduğunu unutmayın.

Amazon API docs: http://docs.amazonwebservices.com/AmazonS3/latest/dev/RESTAuthentication.html#RESTAuthenticationQueryStringAuth

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dougownsall

    dougownsall

    7 EKİM 2007
  • eHow

    eHow

    27 NİSAN 2006
  • fufko

    fufko

    27 ŞUBAT 2006