2017-03-27 12 views
1

私はAzure Blobを持っています。 Azureファイルをブロブにコピーしようとしています。 これらは両方とも同じStorageアカウントにあります。私はブロブにAzureのファイルをコピーしようとするとAzureファイルをAzure BlobにコピーするときにAzure SASを使用する方法

、私は404

例えばを取得しています:await destinationBlob.StartCopyAsync(sourceCloudFile);

仮定:これはAzureファイルにShared Access Signatureを提供する必要があるためです。

私はSASを使用してBlobにファイルをコピーする方法がわかりません。

var policy = new Microsoft.WindowsAzure.Storage.File.SharedAccessFilePolicy() 
{ 
    Permissions = Microsoft.WindowsAzure.Storage.File.SharedAccessFilePermissions.List, 
    SharedAccessExpiryTime = new DateTimeOffset(DateTime.UtcNow.AddDays(1)) 
}; 
var sasToken = source.CloudFile.GetSharedAccessSignature(policy); 

destinationBlob.Properties.ContentType = "image/jpg"; 

オクラホマ - 私は今何をしていますか?

答えて

2

SharedAccessFilePolicyの許可を変更してください。ファイルをコピーするには、許可はReadでなく、Listである必要があります。

var policy = new Microsoft.WindowsAzure.Storage.File.SharedAccessFilePolicy() 
{ 
    Permissions = Microsoft.WindowsAzure.Storage.File.SharedAccessFilePermissions.Read, 
    SharedAccessExpiryTime = new DateTimeOffset(DateTime.UtcNow.AddDays(1) 
}; 

あなたがSASを取得したら、単純にファイルのSASのURLを作成し、CloudBlockBlobオブジェクトにStartCopyを呼ぶだろう。

destinationBlob.Properties.ContentType = "image/jpg"; 
await destinationBlob.SetPropertiesAsync(); 
+0

ああ:

var sasToken = source.CloudFile.GetSharedAccessSignature(policy); var fileSasUri = new Uri(string.Format("{0}{1}", source.CloudFile.Uri.AbsoluteUri, sasToken)); var copyId = await destinationBlob.StartCopyAsync(fileSasUri); 

が先ブロブのコンテンツタイプを設定するには、コピーが完了した後、あなたのような何かを行うことができます! ta(コピー/ペーストも悪い)。しかし、私は何をしますか?私はこの文字列urlを持っている...だから私はそれをどのように使うのですか? –

+0

もう少しコードを追加してください.... –

+0

ありがとうございます! :heart: –

関連する問題