0

我特别想要文件存储而不是 blob 存储(我认为)。这是我的天蓝色函数的代码,我的node_modules文件夹中只有一堆东西。

我想做的是上传整个应用程序的压缩包,然后上传它并在给定的文件夹中将其解压缩。这可能吗?

现在我基本上是在遍历我的所有文件并调用:

var fileStream = new stream.Readable();
fileStream.push(myFileBuffer);
fileStream.push(null);

fileService.createFileFromStream('taskshare', 'taskdirectory', 'taskfile', fileStream, myFileBuffer.length, function(error, result, response) {
  if (!error) {
    // file uploaded
  }
});

这工作太慢了。所以我想知道是否有更快的方法来上传一堆文件以供应用程序使用。

4

1 回答 1

0

这工作太慢了。所以我想知道是否有更快的方法来上传一堆文件以供应用程序使用。

如果可以接受 Microsoft Azure 存储数据移动库,请尝试使用它。Microsoft Azure 存储数据移动库,专为高性能上传、下载和复制 Azure 存储 Blob 和文件而设计。此库基于为AzCopy提供支持的核心数据移动框架。

我们也可以从 github文档中获取演示代码。

string storageConnectionString = "myStorageConnectionString";
CloudStorageAccount account = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = account.CreateCloudBlobClient();
CloudBlobContainer blobContainer = blobClient.GetContainerReference("mycontainer");
blobContainer.CreateIfNotExists();
string sourcePath = "path\\to\\test.txt";
CloudBlockBlob destBlob = blobContainer.GetBlockBlobReference("myblob");

// Setup the number of the concurrent operations
TransferManager.Configurations.ParallelOperations = 64;
// Setup the transfer context and track the upoload progress
SingleTransferContext context = new SingleTransferContext();
context.ProgressHandler = new Progress<TransferStatus>((progress) =>
{
    Console.WriteLine("Bytes uploaded: {0}", progress.BytesTransferred);
});
// Upload a local blob
var task = TransferManager.UploadAsync(
    sourcePath, destBlob, null, context, CancellationToken.None);
task.Wait();
于 2017-10-03T03:47:05.433 回答