0
Elixir庫ExAws S3模塊有一個put_object
方法,允許您執行文件上傳。ExAws S3 - 獲取上傳文件的URL
%{path: filepath, filename: filename} = %Plug.Upload{...}
{:ok, contents} = File.read(filepath)
time = DateTime.utc_now() |> DateTime.to_unix
path = "#{Mix.env}/#{time}/#{filename}"
@bucket |> ExAws.S3.put_object(path, contents) |> ExAws.request
=> {:ok, %{body: "", headers: [{"x-amz-id-2", "someid="}, {"x-amz-request-id", "someid"}, {"Date", "Thu, 16 Feb 2017 19:43:01 GMT"}, {"ETag", "\"sometag\""}, {"Content-Length", "0"}, {"Server", "AmazonS3"}], status_code: 200}}
但是,我還沒有能夠找出我上傳的文件的URL。使用這個庫,我怎樣才能得到我上傳的文件的URL?
我很確定'ex_aws'不提供這個選項。我將它與'arc'組合使用,並且arc基本上自己生成url,但有時它們是無效的。最好的解決方案是手動檢查你的文件有哪些URL,並根據它構建你自己的'get_url'函數。我發現自己非常喜歡弧,我認真考慮創建自己的S3上傳/下載庫。 – PatNowak