如何使用C#将文件从Azure传输到AWS?

时间:2015-05-12 05:05:07

标签: c# amazon-s3 migration azure-storage file-transfer

我在Microsoft Azure中有大约200 GB的文件。我想将其转移到AWS S3。

是否可以在不下载本地计算机上的每个文件的情况下将所有文件从Azure传输到AWS?

1 个答案:

答案 0 :(得分:1)

此代码示例可能会帮助您进行文件传输,但您无法避免将文件下载到执行代码的计算机:

using System;
using Amazon.S3;
using Amazon.S3.Transfer;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;

namespace Sample
{
    class UploadFileFromAzureToS3
    {
        static string existingBucketName = "[Bucket name]";
        static string keyName = "[Your object key]";

        static void Main(string[] args)
        {
            TransferUtility fileTransferUtility = new TransferUtility(new AmazonS3Client(Amazon.RegionEndpoint.USEast1));

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=[Storage Account Name];AccountKey=[Storage Account Primary Key]");
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

            CloudBlobContainer container = blobClient.GetContainerReference("[Your container]");

            CloudBlockBlob blockBlob = container.GetBlockBlobReference("[File Name]");

            using (var fileToUpload = new MemoryStream())
            {
                blockBlob.DownloadToStream(fileToUpload);
                fileTransferUtility.Upload(fileToUpload, existingBucketName, keyName);
            }
        }
    }
}

如果您只需要传输一次文件,可以使用RedGate的blob存储备份服务:https://cloudservices.red-gate.com/Home/Features#storageBackup(您有10天的试用期)。