Ошибка получения хранилища BLOB-объектов Azure - указанный ресурс не существует - PullRequest
0 голосов
/ 30 октября 2018

У меня есть URL-адрес контейнера хранилища BLOB-объектов Azure, и я пытаюсь загрузить файлы

Вот код,

try
        {
            string blobContainerUri = "https://upload.blob.core.windows.net/381a9218-cd78-4dc1-b9a2-f1ff4f952b57";
            CloudBlobContainer blobContainer = new CloudBlobContainer(new Uri(blobContainerUri));
            CloudBlockBlob blob = blobContainer.GetBlockBlobReference("sample.txt");
            string sampleContent = "This is sample text.";
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(sampleContent)))
            {
                blob.UploadFromStream(ms);
            }
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message.ToString());
            Console.WriteLine(ex.StackTrace.ToString());
        }

Теперь я получаю сообщение об ошибке ниже, нужно ли мне вместе с ключом доступа к учетной записи хранения или как это будет?

The specified resource does not exist.
   at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.<ExecuteAsync>d__1`1.MoveNext() in C:\Program Files (x86)\Jenkins\workspace\dotnet-split-common\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:line 82
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.<>c__DisplayClass0_0`1.<ExecuteSync>b__0() in C:\Program Files (x86)\Jenkins\workspace\dotnet-split-common\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:line 41
   at Microsoft.WindowsAzure.Storage.Core.Util.CommonUtility.RunWithoutSynchronizationContext[T](Func`1 actionToRun) in C:\Program Files (x86)\Jenkins\workspace\dotnet-split-common\Lib\Common\Core\Util\CommonUtility.cs:line 407
   at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) in C:\Program Files (x86)\Jenkins\workspace\dotnet-split-common\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:line 40
   at Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.UploadFromStreamHelper(Stream source, Nullable`1 length, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext) in C:\Program Files (x86)\Jenkins\workspace\dotnet-split-blob\Lib\ClassLibraryCommon\Blob\CloudBlockBlob.cs:line 382
   at Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.UploadFromStream(Stream source, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext) in C:\Program Files (x86)\Jenkins\workspace\dotnet-split-blob\Lib\ClassLibraryCommon\Blob\CloudBlockBlob.cs:line 272
   at ConsoleApp4.Program.Main(String[] args) in c:\users\h190733\source\repos\ConsoleApp4\ConsoleApp4\Program.cs:line 23

1 Ответ

0 голосов
/ 30 октября 2018

Вы должны изменить свой код с помощью экземпляра CloudBlobContainer. Вроде как

var uri = new Uri("https://upload.blob.core.windows.net/381a9218-cd78-4dc1-b9a2-f1ff4f952b57")
var storage = new StorageCredentials("your account name", "your storage key");

CloudBlobContainer blobContainer = new CloudBlobContainer(uri, storage);

Надеюсь, это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...