我在Microsoft Azure中有大约200 GB的文件。我想将其转移到AWS S3。
是否可以在不下载本地计算机上的每个文件的情况下将所有文件从Azure传输到AWS?
答案 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天的试用期)。