Загрузите все файлы в папке каталога в Google Cloud Storage без цикла - PullRequest
0 голосов
/ 04 декабря 2018

Как загрузить все файлы в папке в Google Storage Cloud без цикла.Здесь я пытаюсь использовать C # для загрузки одного файла:

public async Task<ActionResult> Upload(IFormFile file)
{
    string contentRootPath = _hostingEnvironment.ContentRootPath;

    var credential = GoogleCredential.FromJson(System.IO.File.ReadAllText(contentRootPath + "/credentials.json"));

    StorageClient storageClient = StorageClient.Create(credential);

    var objectName = MakeObjectName();

    var imageObject = await storageClient.UploadObjectAsync(
        bucket: CloudConfig.BUCKET,
        objectName: objectName,
        contentType: file.ContentType,
        source: file.OpenReadStream(),
        options: new UploadObjectOptions { PredefinedAcl = PredefinedObjectAcl.PublicRead }
    );

    return Ok(new DropzoneInfo { Name = file.FileName, ObjectName = objectName, Link = imageObject.MediaLink, Size = file.Length});
}

1 Ответ

0 голосов
/ 04 декабря 2018

У вас есть действие контроллера, которое принимает один загруженный файл.Используйте List<IFormFile> в своем действии контроллера - см. Этот ответ: Отправка нескольких файлов на контроллер ASP.NET с принятием ICollection

Существует атрибут для загрузки каталогов: <input type="file" webkitdirectory> ( Как использовать функцию загрузки папки Google Chrome 11 в своем собственном коде? )

Поддерживают следующие браузеры: Edge, Safari, Firefox, Chrome, Opera (* 1013)*

...