简体   繁体   English

Google云端存储:删除存储桶中的内容

[英]Google Cloud Storage: Deleting contents of a bucket

Im successfully uploading files to google storage like this: 我成功将文件上传到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;

What I´d also like to do though, is deleting all the contents from a bucket. 我还想做的是从存储桶中删除所有内容。 I can´t seem to find a way that works when searching the internet. 搜索互联网时,我似乎找不到可行的方法。 Can anybody provide me with a code example? 有人可以给我提供代码示例吗?

Thanks a lot in advance! 在此先多谢!

I suggest using the C# client libraries . 我建议使用C#客户端库 With these, deleting the files within a bucket could be achieved by using the following code: 有了这些,可以通过使用以下代码来删除存储桶中的文件:

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

You could find the reference for this in this document . 您可以在本文档中找到此参考。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用Cloud Storage客户端库的Google存储桶统计信息 - Google storage bucket stats using Cloud Storage Client Libraries 创建文件夹 google cloud storage bucket .NET Client Library - Create folder google cloud storage bucket .NET Client Library 如何从 C# 访问谷歌云存储桶 - How to access Google cloud storage bucket from c# 在 C# 中列出 Google Cloud Storage Bucket 中的嵌套文件夹 - List nested folders in Google Cloud Storage Bucket in C# 使用服务帐户将文件上传到Google Merchant Center中生成的Google Cloud Storage存储桶 - Upload file using Service Account to Google Cloud Storage bucket that was generated in Google Merchant Center 在C#应用程序中创建默认Google Cloud Storage存储桶区域时进行更改 - Change default Google Cloud Storage bucket region when creating it in C# application 使用来自C#的Json文件中的服务帐户的Google云存储桶 - Google cloud storage bucket using service account in Json file from C# 使用RestSharp或C#从Google云存储桶中获取文件 - Get File from Google cloud storage bucket using RestSharp or C# 将文件从本地 C# winforms 应用程序安全上传到生产中的 Google Cloud Storage Bucket - securely uploading files from local C# winforms app to Google Cloud Storage Bucket in production Google云存储命名空间 - Google cloud storage namespace
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM