SweetMeSoft.GCP
1.10.107
dotnet add package SweetMeSoft.GCP --version 1.10.107
NuGet\Install-Package SweetMeSoft.GCP -Version 1.10.107
<PackageReference Include="SweetMeSoft.GCP" Version="1.10.107" />
<PackageVersion Include="SweetMeSoft.GCP" Version="1.10.107" />
<PackageReference Include="SweetMeSoft.GCP" />
paket add SweetMeSoft.GCP --version 1.10.107
#r "nuget: SweetMeSoft.GCP, 1.10.107"
#:package SweetMeSoft.GCP@1.10.107
#addin nuget:?package=SweetMeSoft.GCP&version=1.10.107
#tool nuget:?package=SweetMeSoft.GCP&version=1.10.107
SweetMeSoft.GCP
Library with tools to interact with Google Cloud Platform (GCP) services.
Description
SweetMeSoft.GCP is a library for .NET Standard 2.1 that simplifies interaction with Google Cloud services, specifically with BigQuery and Cloud Storage. It provides two main classes, BigQueryRepo and GCPStorage, which act as repositories to facilitate common operations.
Main Components
BigQueryRepo
BigQueryRepo is a generic repository for performing CRUD (Create, Read, Update, Delete) operations on Google BigQuery.
Initialization
To use BigQueryRepo, you must first configure the credentials and project ID. You can do this in three ways:
By credentials file (JSON):
BigQueryRepo.CredentialsFileName = "path/to/your/credentials-file.json"; BigQueryRepo.ProjectId = "your-gcp-project-id";By JSON content of credentials:
BigQueryRepo.CredentialsJson = "{ \"type\": \"service_account\", ... }"; BigQueryRepo.ProjectId = "your-gcp-project-id";By Access Token:
BigQueryRepo.CredentialsToken = "your-access-token"; BigQueryRepo.ProjectId = "your-gcp-project-id";
Once configured, you can get the repository instance:
var repo = BigQueryRepo.Instance;
Usage
The repository uses a generic class T that must be decorated with the BigQueryTable attribute.
[BigQueryTable("my_dataset")]
public class MyEntity
{
public Guid Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
Insert an item:
await repo.InsertItem(new MyEntity { ... });Get all items:
var all = await repo.GetAll<MyEntity>();Query with conditions (LINQ):
var result = await repo.GetByField<MyEntity>(e => e.Age > 18);Update:
await repo.Update(myEditedEntity, e => e.Id == myEditedEntity.Id);Delete:
await repo.Delete<MyEntity>(e => e.Name == "John");
GCPStorage
GCPStorage is a class for managing files in Google Cloud Storage.
Initialization
To use GCPStorage, you must provide the path to the credentials file:
GCPStorage.CredentialsFileName = "path/to/your/credentials-file.json";
var storage = GCPStorage.Instance;
Usage
Upload a file:
var streamFile = new StreamFile("myfile.txt", memoryStream, ContentType.txt); await storage.UploadFile("my-bucket", "path/inside/bucket", streamFile);Download a file:
var downloadedFile = await storage.DownloadFile("my-bucket", "path/inside/bucket", "myfile.txt");Delete a file:
await storage.DeleteFile("my-bucket", "path/inside/bucket", "myfile.txt");Move a file:
await storage.MoveFile("source-bucket", "source/path", "destination-bucket", "destination/path", streamFile);
Dependencies
- Google.Cloud.BigQuery.V2
- Google.Cloud.Storage.V1
- SweetMeSoft.Base
- SweetMeSoft.Tools
License
This project is under the MIT license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Google.Cloud.BigQuery.V2 (>= 3.12.0)
- Google.Cloud.Storage.V1 (>= 4.15.0)
- SweetMeSoft.Tools (>= 1.10.133)
- System.Linq.Async (>= 7.0.1)
-
net10.0
- Google.Cloud.BigQuery.V2 (>= 3.12.0)
- Google.Cloud.Storage.V1 (>= 4.15.0)
- SweetMeSoft.Tools (>= 1.10.133)
- System.Linq.Async (>= 7.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.