Im successfully uploading files to google storage like this:
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. 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.