stavro / arc_ecto

An integration with Arc and Ecto.
255 stars 149 forks source link

(UndefinedFunctionError) function ExAws.S3.Upload.stream_file/1 is undefined (module ExAws.S3.Upload is not available) #70

Open aliabbas-2012 opened 7 years ago

aliabbas-2012 commented 7 years ago

Here is my output


{"image" => %Plug.Upload{content_type: "image/jpeg",
   filename: "17409815_1317417211684158_788963503_n.jpg",
   path: "/tmp/plug-1491/multipart-576910-531644-1"}}
[error] Task #PID<0.922.0> started from #PID<0.917.0> terminating
** (UndefinedFunctionError) function ExAws.S3.Upload.stream_file/1 is undefined (module ExAws.S3.Upload is not available)
    ExAws.S3.Upload.stream_file("/tmp/plug-1491/multipart-576910-531644-1")
    lib/arc/storage/s3.ex:55: Arc.Storage.S3.do_put/3
    (elixir) lib/task/supervised.ex:85: Task.Supervised.do_apply/2
    (elixir) lib/task/supervised.ex:36: Task.Supervised.reply/5
    (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
Function: #Function<0.52315234/0 in Arc.Actions.Store.async_put_version/3>

Here is my code

defmodule BlogTest.Avatar do
  use Arc.Definition
  use Arc.Ecto.Definition

  @versions [:original]

  def filename(version, {_file, scope}) do
    "{scope.uuid}_#{version}"
  end

  # Override the storage directory:
  def storage_dir(version, {file, _scope}) do
    "uploads/user/avatars/#{5}"
  end

end
aliabbas-2012 commented 7 years ago

I found solution by adding def __storage, do: Arc.Storage.Local

Thanks