Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

download_file with ExAws.request! does not raise even though file was not downloaded completely #55

Open
danielkirch opened this issue Apr 24, 2019 · 1 comment

Comments

@danielkirch
Copy link

Environment

  • Elixir & Erlang versions (elixir --version):
    Elixir 1.6.4 (compiled with OTP 19)
  • ExAws version mix deps |grep ex_aws
    ex_aws 2.1.0
    ex_aws_s3 2.0.1
  • HTTP client version. IE for hackney do mix deps | grep hackney
    hackney 1.15.1

Current behavior

Sometimes, if you do

ExAws.S3.download_file(bucket, filename, tmp_file)
|> ExAws.request!

no error is raised even though the file has not been downloaded completely.

Expected behavior

It should raise an ExAws.Error.

We noticed this issue because we save our files with their hash as the filename and we check these hashes after downloading the file.

I think this is related to the :delayed_write option used in download.ex:66, see also https://hexdocs.pm/elixir/File.html#close/1 and http://erlang.org/doc/man/file.html#open-2 . It should be possible to fix this by checking that File.close actually returns :ok in download.ex:84.

@sveredyuk
Copy link

+1 to this issue. Sometimes request just returns {:error, :enoent} with no reason

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants