Azure CloudFile UploadFromFile «Указанное имя ресурса содержит недопустимые символы» - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь загрузить файл, получаю исключение "Указанное имя ресурса содержит недопустимые символы".

Я использую путь @ "C: \ Test \ Test.txt". Когда я переключаюсь на относительную адресацию (т.е. @ ". \ Test.txt") и получаю файл в папке exe, он будет работать.

Что мне нужно знать, так это относительная адресация единственного варианта загрузки файла в хранилище файлов Azure из .NET-клиента? Есть ли способ сослаться на файл с полным путем и загрузить в хранилище файлов?

Обновление: основываясь на комментариях и ответах ниже, я осознал свою ошибку: я указывал путь к входящему файлу для метода GetFileReference, где это должно быть имя нового файла в Azure, следовательно он содержал «:», которое было недействительным. Комментарии верны, я должен был предоставить код, возможно, его легче диагностировали.

public static async Task WriteFileToStorage(string filePath)
{
    CloudFileShare fileShare = GetCloudFileShare();
    CloudFileDirectory fileDirectory = fileShare.GetRootDirectoryReference();
    CloudFile cloudFile = fileDirectory.GetFileReference(filePath);
    await cloudFile.UploadFromFileAsync(filePath);
}

1 Ответ

0 голосов
/ 12 июня 2019

.Net-клиент поддерживает полный путь при загрузке в хранилище файлов Azure.

Вам лучше указать полный код, который вы используете, включая имя файла / путь в локальном хранилище и хранилище файлов Azure.

Вот код, с которым я тестирую, и он работает (и я использую пакет WindowsAzure.Storage , версия 9.3.3):

        static void Main(string[] args)
        {
            CloudStorageAccount storageAccount = new CloudStorageAccount(new StorageCredentials("account_name", "account_key"), true);
            CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
            CloudFileShare fileShare = fileClient.GetShareReference("test");
            CloudFileDirectory rootDir = fileShare.GetRootDirectoryReference();
            CloudFile myfile = rootDir.GetFileReference("mytest.txt");

            //the full file path on local
            myfile.UploadFromFile(@"C:\Test\Test.txt");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...