Google Cloud Storage:删除存储桶的内容

Google Cloud Storage: Deleting contents of a bucket

我已成功将文件上传到 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;

不过,我还想做的是删除存储桶中的所有内容。我似乎无法找到一种在互联网上搜索时有效的方法。谁能给我一个代码示例?

提前致谢!

我建议使用C# client libraries。有了这些,删除桶中的文件可以通过使用以下代码来实现:

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}.");
                }
        }
    } 
}

您可以在 this document 中找到相关参考。