2010-12-17 146 views
1

我有這樣的問題: 我有Droplr-like的Adobe AIR應用程序,它將文件上傳到遠程位置並返回這些文件的短鏈接。我想將所有這些文件上傳到Amazon S3。但是,由於它是Adobe AIR應用程序,並且每個人都可以看到它的源代碼(和S3 API密鑰),所以我不能將文件直接上傳到Amazon S3。據我瞭解,如果有人從應用程序的源代碼獲取API密鑰,他將能夠將文件上傳到我的S3帳戶,我將爲此付費。 我想通過將文件從應用程序上傳到我的服務器來解決此問題,PHP腳本會將它們上傳到Amazon S3。就像一個代理。但這將是雙重交通和緩慢的操作。關於Amazon S3

回答

2

另一種選擇是您可以使用簽名的URL。您的應用程序可以從您的服務器請求上傳URL。然後,您的服務器會生成一個簽名的URL,以便將其發送回用於上載文件的應用程序。您還可以在已簽名的上傳URL上設置到期時間。

+0

問題是我有Adobe AIR應用程序,每個人都可以看到它的來源。所以他們可以複製服務器返回簽名URL的URL並使用它。 – Sbioko 2010-12-17 16:45:21

+0

你不把你的鑰匙放在應用程序中。您的應用程序會打電話給您的服務器(其中包含密鑰),並且服務器會以應用程序用於文件上傳的經過簽名的上載url進行響應。 – 2010-12-17 16:55:09

+0

它是即時完成的,並且您將URL設置爲在您指定的時間後過期。 (可能需要10分鐘才能上傳文件?)您不會將該URL存儲在應用程序中。例如: – 2010-12-17 16:56:48

1

blog article談論保持AWS證書的祕密。雖然它主要覆蓋EC2,但也有一些關於S3的內容。

+0

http://transloadit.com/ - 這是如何工作的?我認爲它首先上傳文件到他們的服務器,然後到S3。 – Sbioko 2010-12-17 16:38:27

0

另一種方法是令牌自動販賣機,你可以運行,使移動和其他客戶端應用程序,以獲得臨時憑證不泄露或在您的應用程序中嵌入您的帳戶憑據的應用程序。你可以閱讀更多關於TVM方法在這裏:

http://aws.amazon.com/articles/4611615499399490