2

疑問です。

ファイル「foo.txt」を作成し、UploadFile()を使用してそれをblobにコピーするコードがあります。
紺碧のコンセプトを理解していれば、このファイルを「c:」で作成することはできませんか?
ServiceDefinition.csdefでローカルストレージを使用し、azureLocalResource.RootPathで作成する必要があります。

しかし、書き込み用のac:\ドライブ(OS用のad:\とコード用のae:\)がありますね。
何に使うの?
スタートアップタスクでそれを使用できますか?

この日、コードはc:\utilで実行されたと思うので質問します。
そして、同じようなコードが新しいワーカーの役割で機能しない理由がわかりません。
(これはファイルだけでなく、ファイルとディレクトリの問題です)

[回答]
このファイルはc:で作成できますが、ドライブ文字が常に同じであるとは限らないため(たとえば、再起動後)、ローカルストレージAPIを使用することを強くお勧めします。
ローカルストレージは、現在のインスタンスの読み取りと書き込みドライブを使用するための単なるショートカットです。
起動タスクの特定のケースでは、2つの方法でこのストレージにアクセスできます。ac#プログラム/スクリプトのazure API(このトピックを参照)または環境変数(このトピックを参照)を使用します。

4

3 に答える 3

8

固定ドライブレターに縛られたくありません。確かに、C:\はほとんどの場合データディスクであり、D:\はほとんどの場合OSであり、E:\はほとんどの場合コードが存在する場所です。

しかし、あなたはこれを当てにすることはできません、それが私がほとんどの場合言う理由です。Ryanがここで説明しているように、再起動後にアプリケーションディスクがE:\からF:\に変わる可能性がありますが、データディスクにも同じことが当てはまる可能性があります。LocalResourceだけがファイルを保存できる場所を教えてくれるので、それを使用することをお勧めします。

ファイルを操作する必要のあるスタートアップタスクがある場合は、LocalResourcesも操作する必要があります。これは、PowerShellを使用することで可能になります:http://blog.smarx.com/posts/using-a-local-storage-resource-from-a-startup-task

于 2012-07-31T12:54:06.113 に答える
2

この目的を目的としたLocalStorageを使用することをお勧めします。また、APIを使用することで、特定のドライブの場所にハードコードされた依存関係を持つ代わりに、パス/ドライブを取得できます。これは、LocalStorageが役割を実行するプロセスの手元にあるため、権限の問題を回避するのにも役立ちます。

于 2012-07-31T12:54:46.450 に答える
0

ファイルをファイルストリームに作成してからファイルをアップロードすることはできませんか?C:\に保存されたファイルへの参照は、ロールが存在するインスタンスによっては存在しない可能性があるため、複数のインスタンスでワーカーロールを実行することの影響も考慮してください。この例には、LocalResourceが最適です。

起動タスクは通常、バッチファイルを実行するために使用されるため、 cerebrataコマンドレットを使用してテキストファイルをアップロードするPowerShellスクリプトを実行できる可能性があります。

于 2012-08-01T01:18:54.533 に答える