Mengunggah direktori menggunakan tingkat tinggi. NET TransferUtility kelas - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengunggah direktori menggunakan tingkat tinggi. NET TransferUtility kelas

Anda dapat menggunakan kelas TransferUtility untuk mengunggah sebuah direktori secara keseluruhan. Secara default, API upload hanya file di root direktori yang ditentukan. Namun, Anda dapat menentukan pengunggahan file secara berulang-ulang dalam semua subdirektori.

Untuk memilih file di direktori tertentu berdasarkan kriteria pemfilteran, tentukan ekspresi pemfilterannya. Misalnya, untuk mengunggah file .pdf saja dari sebuah direktori, tentukan ekspresi filter "*.pdf".

Saat mengunggah file dari sebuah direktori, Anda tidak perlu menentukan nama kunci untuk objek yang dihasilkan. Amazon S3 membangun nama kunci menggunakan jalur file asli. Misalnya, asumsikan bahwa Anda memiliki sebuah direktori yang disebut sebagai c:\myfolder dengan struktur berikut:

C:\myfolder \a.txt \b.pdf \media\ An.mp3

Saat Anda mengunggah direktori ini, Amazon S3 menggunakan nama kunci berikut:

a.txt b.pdf media/An.mp3

Contoh C# berikut mengunggah sebuah direktori ke bucket Amazon S3. Contoh ini menunjukkan cara menggunakan berbagai kelebihan muatan TransferUtility.UploadDirectory untuk mengunggah direktori. Setiap panggilan berurutan untuk unggahan menggantikan unggahan sebelumnya. Untuk informasi tentang menyiapkan dan menjalankan contoh kode, lihat Memulai dengan AWS SDK for. NETdi AWS SDKuntuk. NETPanduan Pengembang.

using Amazon; using Amazon.S3; using Amazon.S3.Transfer; using System; using System.IO; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class UploadDirMPUHighLevelAPITest { private const string existingBucketName = "*** bucket name ***"; private const string directoryPath = @"*** directory path ***"; // The example uploads only .txt files. private const string wildCard = "*.txt"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 s3Client; static void Main() { s3Client = new AmazonS3Client(bucketRegion); UploadDirAsync().Wait(); } private static async Task UploadDirAsync() { try { var directoryTransferUtility = new TransferUtility(s3Client); // 1. Upload a directory. await directoryTransferUtility.UploadDirectoryAsync(directoryPath, existingBucketName); Console.WriteLine("Upload statement 1 completed"); // 2. Upload only the .txt files from a directory // and search recursively. await directoryTransferUtility.UploadDirectoryAsync( directoryPath, existingBucketName, wildCard, SearchOption.AllDirectories); Console.WriteLine("Upload statement 2 completed"); // 3. The same as Step 2 and some optional configuration. // Search recursively for .txt files to upload. var request = new TransferUtilityUploadDirectoryRequest { BucketName = existingBucketName, Directory = directoryPath, SearchOption = SearchOption.AllDirectories, SearchPattern = wildCard }; await directoryTransferUtility.UploadDirectoryAsync(request); Console.WriteLine("Upload statement 3 completed"); } catch (AmazonS3Exception e) { Console.WriteLine( "Error encountered ***. Message:'{0}' when writing an object", e.Message); } catch (Exception e) { Console.WriteLine( "Unknown encountered on server. Message:'{0}' when writing an object", e.Message); } } } }