Google Cloud Storage: удаление содержимого корзины - PullRequest
0 голосов
/ 30 сентября 2018

Я успешно загружаю файлы в хранилище Google следующим образом:

Task upload = Task.Run(async () =>
{
    var clientSecrets = new ClientSecrets();
    clientSecrets.ClientId = "*****";
    clientSecrets.ClientSecret = "*****";

    var scopes = new[] { @"https://www.googleapis.com/auth/devstorage.full_control" };

    var cts = new CancellationTokenSource();
    var userCredential = await GoogleWebAuthorizationBroker.AuthorizeAsync(clientSecrets, scopes, "mail@example.com ", cts.Token);

    await userCredential.RefreshTokenAsync(cts.Token);

    var service = new StorageService();

    var bucketsQuery = service.Buckets.List("MyProjectName");
    bucketsQuery.OauthToken = userCredential.Token.AccessToken;
    var buckets = bucketsQuery.Execute();

    Bucket bucketToUpload = buckets.Items.FirstOrDefault();

    var newFile = new Google.Apis.Storage.v1.Data.Object()
    {
        Bucket = bucketToUpload.Name,
        Name = TargetFileName
    };


    FileStream fileStream = null;
    try
    {
        fileStream = new FileStream(TargetFilePath, FileMode.Open);
        var uploadRequest = new ObjectsResource.InsertMediaUpload(service, newFile, bucketToUpload.Name, fileStream, "audio/wav");
        uploadRequest.OauthToken = userCredential.Token.AccessToken;
        await uploadRequest.UploadAsync();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    finally
    {
        if (fileStream != null) fileStream.Dispose();
    }
});

await upload;

Однако я также хотел бы удалить все содержимое из корзины.Я не могу найти способ, который работает при поиске в Интернете.Кто-нибудь может дать мне пример кода?

Заранее большое спасибо!

1 Ответ

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

Я предлагаю использовать клиентские библиотеки C # .С их помощью можно удалить файлы из корзины, используя следующий код:

using System;
using Google.Cloud.Storage.V1;

namespace csharp {
    public class deletingFilesFromBucket
    {
        static void Main(string[] args)
        {
                var storage = StorageClient.Create();
                var bucketName = "MyBucket"
                foreach (var storageObject in storage.ListObjects(bucketName, ""))
                {
                        storage.DeleteObject(bucketName, storageObject.Name);
                        Console.WriteLine($"Deleted {storageObject.Name}.");
                }
        }
    } 
}

Ссылку на это можно найти в этом документе .

...