WebRoleとしてWCFサービスを使用するWindowsAzureプロジェクトがあります。Azureにファイルを保存したいストレージアカウントがあります。
私のコードは、Azureエミュレーターでテストしたときに機能しました。
しかし、次のエラーが発生したことを知ってください。
Could not find a part of the path 'C:\temp\BatchAzure.log'.
私が実行しようとしているサービスのクライアントサイド:
string path = @"C:\temp\BatchAzure.log";
var test = service.SaveGezichtBestand(path, "999999");
私が使用している方法:
public bool SaveGezichtBestand(string filePath, string memberID)
{
bool result = false;
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container
CloudBlobContainer container = blobClient.GetContainerReference("facefileblobcontainer");
// Create the container if it doesn't already exist
container.CreateIfNotExist();
//By default, the new container is private, so you must specify your storage account key (as you did above)
//to download blobs from this container.
container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
// Retrieve reference to a blob named "myblob"
CloudBlob blob = container.GetBlobReference(memberID);
try
{
// Create or overwrite the "myblob" blob with contents from a local file
using (var fileStream = System.IO.File.OpenRead(filePath))
{
blob.UploadFromStream(fileStream);
result = true;
}
}
catch (Exception)
{
result = false;
throw;
}
return result;
}