Vs.Net C # Azure flle storage не может добавить файл для существующего общего файлового ресурса - PullRequest
0 голосов
/ 25 марта 2019

VS.NET C # не может создать файл в хранилище файлов Azure для существующего общего файлового ресурса

Я использую Microsoft.WindowsAzure.Storage lib для доступа к API хранилища файлов Azure. Мой метод создает File Share и загружает файл. Он работает при создании общего ресурса, но при загрузке общего файла пропускает загрузку.

using Microsoft.WindowsAzure.Storage; 
using Microsoft.WindowsAzure.Storage.Auth;

public void SaveText( string fileName )
{
  string accountName = "mylogs";
  string key = @"dvjdjhsvdjfhvsjhdvfjhsvdfjhC2g==";

  var storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, key), true);
  var share = storageAccount.CreateCloudFileClient().GetShareReference("test");
  share.CreateIfNotExistsAsync().Wait();
  var root = share.GetRootDirectoryReference();
  root.GetFileReference(fileName).UploadTextAsync("mytext").Wait(); 
}

Первый вызов SaveText ( file1 ) работает нормально, Share & " file1 " созданы. Второй вызов SaveText ( file2 ), ошибок нет, « file2 » не создано. Тот же пользователь, то же приложение.

1 Ответ

0 голосов
/ 26 марта 2019

Я использую пакет nuget WindowsAzure.Storage , версия 9.3.3, и с консольным проектом (не .net core) он работает нормально.

Пример кода в качестве удара (просто используйте ваш):

using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using System;

namespace AzureFileTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            p.SaveText("file1"); //in the first call, file1 created and text uploads.
            p.SaveText("file2"); //in the second call, file2 created and text uploads.         

            Console.WriteLine("done now");
            Console.ReadLine();
        }


        public void SaveText(string fileName)
        {
            string accountName = "xxxxx";
            string key = "xxxxxx";

            var storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, key), true);
            var share = storageAccount.CreateCloudFileClient().GetShareReference("test");
            share.CreateIfNotExistsAsync().Wait();

            var root = share.GetRootDirectoryReference();
            root.GetFileReference(fileName).UploadTextAsync("mytext").Wait();
        }

    }
}

Пожалуйста, дайте мне знать, если возникнут какие-либо проблемы или различие между кодами.

...