Packages
upstream
1.6.2
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.7
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
2.0.0
1.8.2
1.8.1
1.7.2
1.7.1
1.7.0
1.6.14
1.6.13
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.12
1.5.11
1.5.11-dev-3
1.5.11-dev-2
1.5.11-dev-1
1.5.11-dev
1.5.10
1.5.9
1.5.8
1.5.7
1.5.6
1.5.5
1.5.2
1.5.1
1.5.0
1.4.12
1.4.9
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.7
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.3
1.2.1
Upstream is for integrating into projects that need to do large file uploads to B2 service. It integrates tightly with Backblaze B2 for now, with plans to support Amazon S3.
Current section
Files
Jump to
Current section
Files
lib/upstream/worker/standard_file.ex
defmodule Upstream.Worker.StandardFile do
@moduledoc """
Worker for simple file
"""
use Upstream.Worker.Base
def task(state) do
{:ok, checksum} = Checksum.start_link()
{:ok, url} = Upload.url()
# single thread
index = 0
header = %{
authorization: url.authorization_token,
file_name: URI.encode(state.uid.name),
file_info: state.job.metadata,
# for sha1 at the end
content_length: state.job.stat.size + 40,
x_bz_content_sha1: "hex_digits_at_end"
}
body = Flow.generate(state.job.stream, index, checksum)
try do
Upload.file(url.upload_url, header, body)
after
Checksum.stop(checksum)
end
end
end