2014-05-07 47 views
3

我想使用預簽名URL寫入使用Ruby

首先我使用url_for創建一個標識的URL的文件上傳到S3一簽預AWS S3 URL(:寫)

s3object = S3.buckets['myBucket'].objects['someFolder/testFile.txt'] 
url = s3object.url_for(:write) # 

我按預期得到了網址。

https://s3.amazonaws.com/myBucket/someFolder/testFile.txt?AWSAccessKeyId=AKJFGKJASGK...... 

但現在我想用這個網址 我的假設有一種方式來獲得從該網址上,我可以用「寫」方法的S3對象上載的東西。

obj = getObjectFromUrl(url)

東西有沒有這樣的方法?

如果不是,我應該如何使用這個URL上傳東西到S3?

編輯:我可能應該解釋。 我爲了測試而創建了URL。 當我正在處理它時,我將只有URL。 單獨使用URL,我將不得不上傳文件。

+0

可能重複(http://stackoverflow.com/questions/23443966/uploading-a-file-to-a-s3-presigned-url) –

回答

1

通過當前適用於Ruby的AWS開發工具包文檔,建議的方法是簡單地調用讀取您的s3對象。如果你已經有了s3對象,你應該可以直接從對象本身讀取。另外,如果您希望流式傳輸文件讀取,還有一種流式下載方法。 [上傳文件到S3 Presigned URL]的AWS S3 Object Documentation

obj.write('abc') 
puts obj.read 
#=> abc