Как получить в аренду Azure хранилище файлов? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть веб-приложение с несколькими экземплярами в облаке azure. Я хочу убедиться, что только один из них читает и обрабатывает файл из хранилища azure. Я думал, что, используя вариант аренды, я смогу это осуществить.

Однако я не могу найти подходящие методы для этой операции. Я нашел эту опцию REST API , но я ищу что-то вроде этого.

Этот пример показывает хранилище BLOB-объектов. Какие есть варианты хранения файлов? Я использую последнюю версию nuget для хранения файлов.

EDIT:

Вот как я получаю данные из файла хранилища и обрабатываю данные.

    var storageAccount = CloudStorageAccount.Parse("FileStorageConnectionString");
    var fileClient = storageAccount.CreateCloudFileClient();
    var share = fileClient.GetShareReference("StorageFileShareName");
    var file = this.share.GetRootDirectoryReference().GetFileReference("file.txt");
---processing file and renaming the file after processing---

Как реализовать аренду в этом файле, чтобы ни один другой экземпляр облака не получил доступ к этому файлу? После обработки файла тоже переименую.

1 Ответ

1 голос
/ 06 мая 2020

Попробуйте что-то вроде ниже:

        string connectionString = "DefaultEndpointsProtocol=https;AccountName=<account-name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net;";
        var shareClient = new ShareClient(connectionString, "test");
        shareClient.CreateIfNotExists();
        var fileClient = shareClient.GetRootDirectoryClient().GetFileClient("test.txt");
        var bytes = Encoding.UTF8.GetBytes("This is a test");
        fileClient.Create(bytes.Length);
        fileClient.Upload(new MemoryStream(bytes));
        var leaseClient = fileClient.GetShareLeaseClient();
        Console.WriteLine("Acquiring lease...");
        var leaseId = leaseClient.Acquire();
        Console.WriteLine("Lease Id: " + leaseId);
        Console.WriteLine("Breaking lease...");
        leaseClient.Break();
        Console.WriteLine("Lease broken...");

Он использует Azure.Storage.Files.Shares пакет Nuget.

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