0
我寫了一個Rails API,在aws-sdk-ruby的幫助下,它從AWS中檢索一個文件並返回API的響應。我可以通過object.get以某種方式得到文件流,我可以直接從Rails API返回。如何在Object.get中輸出文件流
s3 = Aws::S3::Resource.new
bucket_name = "my_bucket"
bucket = s3.bucket(bucket_name)
object = bucket.object("a/b/my.pdf")
Rails.logger.info 'Downloading file to AWS'
downloaded_data = object.get({})
send_data(downloaded_data,
:filename => "my.pdf",
:type => "mime/type"
)
但它不返回文件。
一種選擇我所知道的是,使用該行的文件,先保存在本地:
object.get(response_target: '/tmp/my.pdf')
比我能回到這個文件但有沒有辦法跳過這一步,直接返回object.get
響應而無需在本地保存。
我不能使用this解決方案,因爲我的URL不公開,我只是創建一個REST API。
當我試着this解決方案時,我得到如下畫面。
@AndreyDeineko ,這個問題是不同的,因爲這些文件已經可以通過URL公開訪問。 – Saurabh
它不適合你嗎?如果不是,我會重新提出這個問題。 –
@AndreyDeineko就我而言,有一件事,我只有REST API返回文件,而不是完整的Rails應用程序,其次沒有內容的公共URL。 – Saurabh