我正在尝试使用.NET SDK在Amazon S3上异步上传多个文件。任何让我入门的例子都将不胜感激。提前致谢。
答案 0 :(得分:1)
您要查找的Amazon S3和AWS SDK for .NET功能是Using the High-Level .NET API for Multipart Upload:
AWS SDK for .NET公开了一个简化的高级API 分段上传(请参阅Uploading Objects Using Multipart Upload API)。 您可以从文件,目录或流中上传数据。 [...] 您可以选择设置所需的高级选项,例如部件尺寸 用于分段上传,您要使用的线程数 在同时上传部分时,可选的文件元数据, 存储类(STANDARD或REDUCED_REDUNDANCY)或ACL。高层 API提供了
TransferUtilityUploadRequest
类来设置它们 高级选项。 [强调我的]
Upload a Directory中提供了一个示例代码段:
using System;
using System.IO;
using Amazon.S3;
using Amazon.S3.Transfer;
namespace s3.amazon.com.docsamples
{
class UploadDirectoryMPUHighLevelAPI
{
static string existingBucketName = "*** Provide bucket name ***";
static string directoryPath = "*** Provide directory name ***";
static void Main(string[] args)
{
try
{
TransferUtility directoryTransferUtility =
new TransferUtility(new AmazonS3Client(Amazon.RegionEndpoint.USEast1));
// 1. Upload a directory.
directoryTransferUtility.UploadDirectory(directoryPath,
existingBucketName);
Console.WriteLine("Upload statement 1 completed");
// 2. Upload only the .txt files from a directory.
// Also, search recursively.
directoryTransferUtility.UploadDirectory(
directoryPath,
existingBucketName,
"*.txt",
SearchOption.AllDirectories);
Console.WriteLine("Upload statement 2 completed");
// 3. Same as 2 and some optional configuration
// Search recursively for .txt files to upload).
TransferUtilityUploadDirectoryRequest request =
new TransferUtilityUploadDirectoryRequest
{
BucketName = existingBucketName,
Directory = directoryPath,
SearchOption = SearchOption.AllDirectories,
SearchPattern = "*.txt"
};
directoryTransferUtility.UploadDirectory(request);
Console.WriteLine("Upload statement 3 completed");
}
catch (AmazonS3Exception e)
{
Console.WriteLine(e.Message, e.InnerException);
}
}
}
}