该接口用于列举桶中的正在进行的分片任务,最多返回 1000 个分片上传任务。
说明
IsTruncated
为 true
,说明还有未列举的分片上传任务。UploadIDMarker
请求参数可以列出额外的分片上传任务。列举分片上传任务之前,您需要确保账号拥有桶的 tos:ListBucketMultipartUploads 权限,具体操作,请参见 IAM 策略概述。
参数 | 描述 |
---|---|
Prefix | 指定列举返回对象的前缀名称。 |
Delimiter | 对对象名称进行分组的字符。 |
MaxUploads | 返回分片上传任务的最大数量。 |
EncodingType | 对返回的内容进行编码并指定编码的类型。 |
KeyMarker | 列举分片上传任务的起始位置。设定从该值之后按字母排序返回对象列表。通常为上次请求返回的 |
VersionIdMarker | 与 |
以下代码用于列举指定存储桶中最多 10 个未合并的分片上传任务。
using System;
using TOS;
using TOS.Error;
using TOS.Model;
namespace ConsoleApp
{
internal class Program
{
private static void Main(string[] args)
{
var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
// endpoint 若没有指定HTTP协议(HTTP/HTTPS),默认使用 HTTPS
// Bucket 的 Endpoint,以华北2(北京)为例:https://tos-cn-beijing.volces.com
var endpoint = "https://tos-cn-beijing.volces.com";
var region = "cn-beijing";
// 填写 BucketName
var bucketName = "*** Provide your bucket name ***";
// 创建TOSClient实例
var client = TosClientBuilder.Builder().SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region).Build();
try
{
var listMultipartUploadsInput = new ListMultipartUploadsInput()
{
Bucket = bucketName,
MaxUploads = 10
};
// 获取 bucket 中最多 10 个未完成任务
var listMultipartUploadsOutput = client.ListMultipartUploads(listMultipartUploadsInput);
foreach (var upload in listMultipartUploadsOutput.Uploads)
{
Console.WriteLine("Object Key: {0}", upload.Key);
Console.WriteLine("Object UploadID: {0}", upload.UploadID);
Console.WriteLine("Object Owner: {0}", upload.Owner);
Console.WriteLine("Object StorageClass: {0}", upload.StorageClass);
}
}
catch (TosServerException ex)
{
Console.WriteLine("ListMultipartUploads failed, request id {0}", ex.RequestID);
Console.WriteLine("ListMultipartUploads failed, status code {0}", ex.StatusCode);
Console.WriteLine("ListMultipartUploads failed, response error code {0}", ex.Code);
Console.WriteLine("ListMultipartUploads failed, response error message {0}", ex.Message);
}
catch (TosClientException ex)
{
Console.WriteLine("ListMultipartUploads failed, error message {0}", ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("ListMultipartUploads failed, {0}", ex.Message);
}
}
}
}
以下代码用于列举指定存储桶指定前缀下的所有未合并的分片上传任务。
using System;
using TOS;
using TOS.Error;
using TOS.Model;
namespace ConsoleApp
{
internal class Program
{
private static void Main(string[] args)
{
var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
// endpoint 若没有指定HTTP协议(HTTP/HTTPS),默认使用 HTTPS
// Bucket 的 Endpoint,以华北2(北京)为例:https://tos-cn-beijing.volces.com
var endpoint = "https://tos-cn-beijing.volces.com";
var region = "cn-beijing";
// 填写 BucketName
var bucketName = "*** Provide your bucket name ***";
var prefix = "*** Provide your object key prefix ***";
// 创建TOSClient实例
var client = TosClientBuilder.Builder().SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region).Build();
try
{
// 列举指定前缀下的所有未完成分片的任务
var truncated = true;
var marker = "";
while (truncated)
{
var listMultipartUploadsInput = new ListMultipartUploadsInput()
{
Bucket = bucketName,
MaxUploads = 1000,
KeyMarker = marker,
Prefix = prefix
};
var listMultipartUploadsOutput = client.ListMultipartUploads(listMultipartUploadsInput);
foreach (var upload in listMultipartUploadsOutput.Uploads)
{
Console.WriteLine("Object Key: {0}", upload.Key);
Console.WriteLine("Object UploadID: {0}", upload.UploadID);
Console.WriteLine("Object Owner: {0}", upload.Owner);
Console.WriteLine("Object StorageClass: {0}", upload.StorageClass);
}
truncated = listMultipartUploadsOutput.IsTruncated;
marker = listMultipartUploadsOutput.NextKeyMarker;
}
}
catch (TosServerException ex)
{
Console.WriteLine("ListMultipartUploads failed, request id {0}", ex.RequestID);
Console.WriteLine("ListMultipartUploads failed, status code {0}", ex.StatusCode);
Console.WriteLine("ListMultipartUploads failed, response error code {0}", ex.Code);
Console.WriteLine("ListMultipartUploads failed, response error message {0}", ex.Message);
}
catch (TosClientException ex)
{
Console.WriteLine("ListMultipartUploads failed, error message {0}", ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("ListMultipartUploads failed, {0}", ex.Message);
}
}
}
}
以下代码用于列举指定存储桶未合并的所有分片上传任务。
using System;
using TOS;
using TOS.Error;
using TOS.Model;
namespace ConsoleApp
{
internal class Program
{
private static void Main(string[] args)
{
var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
// endpoint 若没有指定HTTP协议(HTTP/HTTPS),默认使用 HTTPS
// Bucket 的 Endpoint,以华北2(北京)为例:https://tos-cn-beijing.volces.com
var endpoint = "https://tos-cn-beijing.volces.com";
var region = "cn-beijing";
// 填写 BucketName
var bucketName = "*** Provide your bucket name ***";
// 创建TOSClient实例
var client = TosClientBuilder.Builder().SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region).Build();
try
{
// 列举所有未完成分片的任务
var truncated = true;
var marker = "";
while (truncated)
{
var listMultipartUploadsInput = new ListMultipartUploadsInput()
{
Bucket = bucketName,
MaxUploads = 1000,
KeyMarker = marker,
};
var listMultipartUploadsOutput = client.ListMultipartUploads(listMultipartUploadsInput);
foreach (var upload in listMultipartUploadsOutput.Uploads)
{
Console.WriteLine("Object Key: {0}", upload.Key);
Console.WriteLine("Object UploadID: {0}", upload.UploadID);
Console.WriteLine("Object Owner: {0}", upload.Owner);
Console.WriteLine("Object StorageClass: {0}", upload.StorageClass);
}
truncated = listMultipartUploadsOutput.IsTruncated;
marker = listMultipartUploadsOutput.NextKeyMarker;
}
}
catch (TosServerException ex)
{
Console.WriteLine("ListMultipartUploads failed, request id {0}", ex.RequestID);
Console.WriteLine("ListMultipartUploads failed, status code {0}", ex.StatusCode);
Console.WriteLine("ListMultipartUploads failed, response error code {0}", ex.Code);
Console.WriteLine("ListMultipartUploads failed, response error message {0}", ex.Message);
}
catch (TosClientException ex)
{
Console.WriteLine("ListMultipartUploads failed, error message {0}", ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("ListMultipartUploads failed, {0}", ex.Message);
}
}
}
}
关于列举对象分片的 API 接口详细介绍,请参见 ListMultipartUploads。