Aliyun.Oss.Object.MultipartUpload (aliyun_oss v2.0.0)
Object operations - Multipart Upload.
Link to this section Summary
Functions
AbortMultipartUpload - cancels a multipart upload task and deletes the parts uploaded in the task.
CompleteMultiUpload - completes the multipart upload task of an object after all parts of the object are uploaded.
InitiateMultipartUpload - notifies OSS to initiate a multipart upload task before you perform multipart upload to upload data.
ListParts - Lists all parts that are uploaded by using a specified upload ID.
ListMultipartUploads - lists all multipart upload tasks in progress.
A shortcut for uploading streaming data.
UploadPart - uploads data by part based on the specified object name and upload ID after you initiate a multipart upload operation.
UploadPartCopy - copies data from an existing object to upload a part by adding a x-oss-copy-request
header to UploadPart.
Link to this section Types
error()
Link to this section Functions
abort_upload(config, bucket, object, upload_id)
@spec abort_upload(Aliyun.Oss.Config.t(), String.t(), String.t(), String.t()) :: {:error, error()} | {:ok, Aliyun.Oss.Client.Response.t()}
AbortMultipartUpload - cancels a multipart upload task and deletes the parts uploaded in the task.
examples
Examples
iex> Aliyun.Oss.Object.MultipartUpload.abort_upload(config, "some-bucket", "some-object", "UPLOAD_ID")
{:ok, %Aliyun.Oss.Client.Response{
data: "",
headers: [
{"Server", "AliyunOSS"},
{"Date", "Wed, 05 Dec 2018 02:34:57 GMT"},
...
]
}
}
complete_upload(config, bucket, object, upload_id, parts, headers \\ %{})
@spec complete_upload( Aliyun.Oss.Config.t(), String.t(), String.t(), String.t(), [{integer(), String.t()}], map() ) :: {:error, error()} | {:ok, Aliyun.Oss.Client.Response.t()}
CompleteMultiUpload - completes the multipart upload task of an object after all parts of the object are uploaded.
examples
Examples
iex> uploaded_parts = [{1, "ETAG_FOR_PART1}, {2, "ETAG_FOR_PART2}]
iex> Aliyun.Oss.Object.MultipartUpload.complete_upload(config, "some-bucket", "some-object", "UPLOAD_ID", uploaded_parts)
{:ok, %Aliyun.Oss.Client.Response{
data: %{
"CompleteMultipartUploadResult" => %{
"Bucket" => "some-bucket",
"ETag" => ""21000000000000000000000000000000-1"",
"Key" => "some-object",
"Location" => "https://some-bucket.oss-cn-shenzhen.aliyuncs.com/some-object"
}
},
headers: [
{"Server", "AliyunOSS"},
{"Date", "Wed, 05 Dec 2018 02:34:57 GMT"},
...
]
}
}
init_upload(config, bucket, object, headers \\ %{}, opts \\ [])
@spec init_upload(Aliyun.Oss.Config.t(), String.t(), String.t(), map(), [ {:encoding_type, :url} ]) :: {:error, error()} | {:ok, String.t()}
InitiateMultipartUpload - notifies OSS to initiate a multipart upload task before you perform multipart upload to upload data.
options
Options
:encoding_type
- default is blank, accept value::url
examples
Examples
iex> Aliyun.Oss.Object.MultipartUpload.init_upload(config, "some-bucket", "some-object")
{:ok, "UPLOAD_ID"}
list_parts(config, bucket, object, upload_id, query_params \\ %{})
@spec list_parts(Aliyun.Oss.Config.t(), String.t(), String.t(), String.t(), map()) :: {:error, error()} | {:ok, Aliyun.Oss.Client.Response.t()}
ListParts - Lists all parts that are uploaded by using a specified upload ID.
examples
Examples
iex> Aliyun.Oss.Object.MultipartUpload.list_parts(config, "some-bucket", "some-object", "UPLOAD_ID")
{:ok, %Aliyun.Oss.Client.Response{
data: %{
"ListPartsResult" => %{
"Bucket" => "some-bucket",
"IsTruncated" => false,
"Key" => "some-object",
"MaxParts" => "1000",
"NextPartNumberMarker" => "2",
"Part" => [
%{
"ETag" => ""09000000000000000000000000000000"",
"HashCrc64ecma" => "15248619871383844432",
"LastModified" => "2018-05-14T08:03:26.000Z",
"PartNumber" => "1",
"Size" => "1538"
},
%{
"ETag" => ""2A000000000000000000000000000000"",
"HashCrc64ecma" => "13658734736388254586",
"LastModified" => "2018-05-14T08:03:37.000Z",
"PartNumber" => "2",
"Size" => "18"
}
],
"PartNumberMarker" => "0",
"StorageClass" => "Standard",
"UploadId" => "UPLOAD_ID"
}
},
headers: [
{"Server", "AliyunOSS"},
{"Date", "Wed, 05 Dec 2018 02:34:57 GMT"},
...
]
}
}
list_uploads(config, bucket, query_params \\ %{})
@spec list_uploads(Aliyun.Oss.Config.t(), String.t(), map()) :: {:error, error()} | {:ok, Aliyun.Oss.Client.Response.t()}
ListMultipartUploads - lists all multipart upload tasks in progress.
The result includes the tasks are not completed or canceled.
examples
Examples
iex> Aliyun.Oss.Object.MultipartUpload.list_uploads(config, "some-bucket")
{:ok, %Aliyun.Oss.Client.Response{
data: %{
"ListMultipartUploadsResult" => %{
"Bucket" => "some-bucket",
"Delimiter" => nil,
"IsTruncated" => false,
"KeyMarker" => nil,
"MaxUploads" => "1000",
"NextKeyMarker" => nil,
"NextUploadIdMarker" => nil,
"Prefix" => nil,
"Upload" => [
%{
"Initiated" => "2018-05-14T07:59:10.000Z",
"Key" => "some-object",
"StorageClass" => "Standard",
"UploadId" => "UPLOAD_ID"
},
%{
"Initiated" => "2018-05-14T07:59:10.000Z",
"Key" => "some-object",
"StorageClass" => "Standard",
"UploadId" => "UPLOAD_ID"
}
],
"UploadIdMarker" => nil
}
},
headers: [
{"Server", "AliyunOSS"},
{"Date", "Wed, 05 Dec 2018 02:34:57 GMT"},
...
]
}
}
upload(config, bucket, object, parts)
@spec upload(Aliyun.Oss.Config.t(), String.t(), String.t(), Enum.t()) :: {:error, error()} | {:ok, Aliyun.Oss.Client.Response.t()}
A shortcut for uploading streaming data.
examples
Examples
iex> part_bytes = 102400 # The minimum allowed size is 100KB.
iex> parts = File.stream!("/path/to/file", [], part_bytes)
iex> Aliyun.Oss.Object.MultipartUpload.upload(config, "some-bucket", "some-object", parts)
{:ok, %Aliyun.Oss.Client.Response{
data: %{
"CompleteMultipartUploadResult" => %{
"Bucket" => "some-bucket",
"ETag" => ""21000000000000000000000000000000-1"",
"Key" => "some-object",
"Location" => "https://some-bucket.oss-cn-shenzhen.aliyuncs.com/some-object"
}
},
headers: [
{"Server", "AliyunOSS"},
{"Date", "Wed, 05 Dec 2018 02:34:57 GMT"},
...
]
}
}
upload_part(config, bucket, object, upload_id, part_number, body)
@spec upload_part( Aliyun.Oss.Config.t(), String.t(), String.t(), String.t(), integer(), String.t() ) :: {:error, error()} | {:ok, Aliyun.Oss.Client.Response.t()}
UploadPart - uploads data by part based on the specified object name and upload ID after you initiate a multipart upload operation.
examples
Examples
iex> Aliyun.Oss.Object.MultipartUpload.upload_part(config, "some-bucket", "some-object", "UPLOAD_ID", 1, "CONTENT")
{:ok, %Aliyun.Oss.Client.Response{
data: "",
headers: [
{"Server", "AliyunOSS"},
{"Date", "Wed, 05 Dec 2018 02:34:57 GMT"},
...
]
}
}
upload_part_copy(config, bucket, object, upload_id, part_number, copy_source, copy_source_range \\ "", headers \\ %{})
UploadPartCopy - copies data from an existing object to upload a part by adding a x-oss-copy-request
header to UploadPart.
examples
Examples
iex> Aliyun.Oss.Object.MultipartUpload.upload_part_copy(config, "some-bucket", "some-object", "UPLOAD_ID", 1, "/SourceBucketName/SourceObjectName")
{:ok, %Aliyun.Oss.Client.Response{
data: %{
"CopyPartResult" => %{
"ETag" => ""09800000000000000000000000000000"",
"LastModified" => "2017-05-14T07:44:26.000Z"
}
},
headers: [
{"Server", "AliyunOSS"},
{"Date", "Wed, 05 Dec 2018 02:34:57 GMT"},
...
]
}
}