簡體   English   中英

RUby-遠程URL附件的Amazon S3-OpenURI :: HTTPError:403 Forbidden

[英]RUby - amazon S3 for remote url attachments - OpenURI::HTTPError: 403 Forbidden

我知道這個問題已經問過幾次了,但是沒有一個解決方案對我有用。 我將Ruby版本2.2.1與open-uri一起使用,並嘗試為我的電子郵件附件添加遠程URL。

我所擁有的是:

@filename = "#{@doc.id}-#{@company.subdomain}-#{@doc.doc_number}-#{@doc.created_at.strftime("%Y-%m-%d")}.pdf"
@file_path = "https://mybucket.s3.amazonaws.com/docs/doc_#{@doc.id}/#{@doc.filename}"

attachments[@filename] = open(URI.parse("#{@file_path}")).read

我也用過

 1. File.read(open("#{@file_path}")
 2. open(Net::HTTP.get(URI.parse("#{@file_path}"))
 3. Added User-Agent

我刪除了URI.parse,嘗試使用實例變量並且沒有字符串插值。 什么都沒有。 如果我在瀏覽器中訪問了文件路徑,則它可以工作,但是當我在郵件程序中調用它時卻無法工作。

任何幫助將非常感激。

編輯:如果我只是硬編碼一個工作的URL(沒有字符串插值)作為文件附件,它工作正常。

好吧,那是一個簡單的解決方法,但一點也不相關。 我在代碼的其他地方出現了錯字,這使得文件名與我以前測試的網址有些不同。

當我對file_path使用以下代碼時,我意識到了這一點,並且可以立即使用:

file_path = @doc.filename.url

attachments[@file_name] = open(URI.parse("#{file_path}")).read

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM