簡體   English   中英

復制Azure附加Blob獲取404

[英]Copy Azure Append Blob getting a 404

處理后嘗試將附加Blob移動到另一個容器。 我首先只是嘗試復制它,然后將其刪除(除非有實際的移動功能?)

使用C#

我不斷收到404:遠程服務器返回錯誤:(404)找不到。 ---> System.Net.WebException:遠程服務器返回錯誤:(404)找不到。 在System.Net.HttpWebRequest.GetResponse()

我嘗試在容器和Blob級別都創建一個SasToken。

private static void  copyBlob(messageClass msgPassed, CloudStorageAccount storageAccount)
    {
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
        CloudBlobContainer sourceContainer = blobClient.GetContainerReference(receiveScanContainer);

        //create a SAS on source blob container with "read" permission. We will append this SAS later
        var sasToken = sourceContainer.GetSharedAccessSignature(new SharedAccessBlobPolicy()
        {
            Permissions = SharedAccessBlobPermissions.Read,
            SharedAccessExpiryTime = DateTime.UtcNow.AddDays(1),
        });

        CloudBlobContainer targetContainer = blobClient.GetContainerReference(archiveContainer);

        CloudAppendBlob sourceBlob = sourceContainer.GetAppendBlobReference(msgPassed.currentName);
        var sasToken2 = sourceBlob.GetSharedAccessSignature(new SharedAccessBlobPolicy()
        {
            Permissions = SharedAccessBlobPermissions.Read,
            SharedAccessExpiryTime = DateTime.UtcNow.AddDays(1),

        });

       CloudAppendBlob targetBlob = targetContainer.GetAppendBlobReference(msgPassed.currentName);
        string name = sourceBlob.Uri.Segments.Last();
       CloudAppendBlob destBlob = targetContainer.GetAppendBlobReference(name+sasToken2);

        targetBlob.StartCopy(destBlob);
    }

好...深入研究它。 下面的作品。 我還傳遞了目標容器的名稱,該名稱與實際的容器名稱略有錯誤(關閉了一個字母)。

    private static void  copyBlob(messageClass msgPassed, CloudStorageAccount storageAccount)
    {


        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
        CloudBlobContainer sourceContainer = blobClient.GetContainerReference(receiveScanContainer);

        CloudBlobContainer targetContainer = blobClient.GetContainerReference(archiveContainer);

        CloudAppendBlob sourceBlob = sourceContainer.GetAppendBlobReference(msgPassed.currentName);
        CloudAppendBlob targetBlob = targetContainer.GetAppendBlobReference(msgPassed.currentName);


        targetBlob.StartCopy(sourceBlob);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM