2017-10-03 14 views
0

私はファイルストレージがBLOBストレージではない(私は思う)。これは私の紺色関数のコードであり、私はnode_modulesフォルダにたくさんのものを持っています。多数のファイルをazureファイルストレージにアップロードする最良の方法は何ですか?

私がしたいことは、アプリ全体のジップをアップロードし、それをアップロードし、特定のフォルダに空白を開けておくことです。これは可能ですか?

は今、私は基本的に自分のファイルや呼び出しのすべてを反復処理しています:

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 
    } 
}); 

そして、これは、そのあまりにも遅い動作します。だから私はアプリで使用するためのファイルの束をアップロードするより速い方法があるのだろうかと思っています。

+0

ファイルを同時にアップロードするとどうなりますか? –

+0

これを行うために私はそれを変更しましたが、まだ私の期待には遅すぎます。それは30分から5分のようなものになりました。しかし、zipファイルの送信と解凍のための 'kudu' APIがあるようです。私はまだそれを理解しようとしています。私がそれを管理していれば、ここに結果を掲載します。 –

答えて

0

これは非常に遅いです。だから私はアプリで使用するためのファイルの束をアップロードするより速い方法があるのだろうかと思っています。

Microsoft Azureストレージデータ移動ライブラリが許容される場合は、使用してください。 Azure Storage BlobとFileをアップロード、ダウンロード、コピーする 高性能用に設計されています。このライブラリは、AzCopyの主要なデータ移動フレームワークに基づいています。

また、github documentからデモコードを取得することもできます。

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(); 
+0

私はnodejsを使用していますので、このライブラリを直接使用することはできません。コードを調べて、apiの使用方法を確認しようとしています。私はまた、Blobではないファイルを使用しています。 –

関連する問題