SweetMeSoft.GCP 1.10.107

dotnet add package SweetMeSoft.GCP --version 1.10.107
                    
NuGet\Install-Package SweetMeSoft.GCP -Version 1.10.107
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SweetMeSoft.GCP" Version="1.10.107" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SweetMeSoft.GCP" Version="1.10.107" />
                    
Directory.Packages.props
<PackageReference Include="SweetMeSoft.GCP" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SweetMeSoft.GCP --version 1.10.107
                    
#r "nuget: SweetMeSoft.GCP, 1.10.107"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SweetMeSoft.GCP@1.10.107
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SweetMeSoft.GCP&version=1.10.107
                    
Install as a Cake Addin
#tool nuget:?package=SweetMeSoft.GCP&version=1.10.107
                    
Install as a Cake Tool

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:

  1. By credentials file (JSON):

    BigQueryRepo.CredentialsFileName = "path/to/your/credentials-file.json";
    BigQueryRepo.ProjectId = "your-gcp-project-id";
    
  2. By JSON content of credentials:

    BigQueryRepo.CredentialsJson = "{ \"type\": \"service_account\", ... }";
    BigQueryRepo.ProjectId = "your-gcp-project-id";
    
  3. 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.10.107 199 7/26/2026
1.10.105 503 11/30/2025
1.10.104 399 9/17/2025
1.10.103 518 9/6/2024
1.10.102 418 2/24/2023
1.10.101 385 2/24/2023
1.10.100 395 2/23/2023