CloudRu.ObjectStorageHelper 2.0.0

dotnet add package CloudRu.ObjectStorageHelper --version 2.0.0                
NuGet\Install-Package CloudRu.ObjectStorageHelper -Version 2.0.0                
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="CloudRu.ObjectStorageHelper" Version="2.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CloudRu.ObjectStorageHelper --version 2.0.0                
#r "nuget: CloudRu.ObjectStorageHelper, 2.0.0"                
#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.
// Install CloudRu.ObjectStorageHelper as a Cake Addin
#addin nuget:?package=CloudRu.ObjectStorageHelper&version=2.0.0

// Install CloudRu.ObjectStorageHelper as a Cake Tool
#tool nuget:?package=CloudRu.ObjectStorageHelper&version=2.0.0                

CloudRu.ObjectStorageHelper

ObjectStorageService для Cloud.ru

ObjectStorageService - это .NET библиотека для удобного взаимодействия с Object Storage сервиса Cloud.ru. Библиотека предоставляет простой и интуитивно понятный интерфейс для выполнения основных операций с объектным хранилищем.

Основные возможности

  • Создание, переименование, и удаление папок
  • Загрузка, скачивание и удаление файлов
  • Получение списка папок и файлов
  • Простой в использовании асинхронный API

Установка

Установите пакет ObjectStorageService через NuGet Package Manager:

NuGet\Install-Package CloudRu.ObjectStorageHelper -Version 2.0.0

Или через .NET CLI:

dotnet add package CloudRu.ObjectStorageHelper --version 2.0.0

Использование

Вот пример базового использования библиотеки:

С помощью Builder() :


var s3Client = new S3ClientBuilder()
    .WithTenantId("YOUR_TENANT_ID") 
    .WithAccessKey("YOUR_ACCESS_KEY")
    .WithSecretKey("YOUR_SECRET_KEY")
    .WithBucketName("YOUR_BUCKET_NAME")
    .Build();

var folders = await s3Client.ListFoldersAsync();

foreach (var folder in folders)
{
    Console.WriteLine(folder);
}

С помощью конструктора :

using ObjectStorageService;

// Инициализация сервиса
var service = new ObjectStorageService(
    "your_access_key", // здесь accessKey - это строка, состоящая из: <tenantId:accessKey>
    "your_secret_key",
    "your-bucket-name"
);

// Создание папки
await service.CreateFolderAsync("my-folder");

// Загрузка файла
await service.UploadFileAsync("my-folder", "path/to/local/file.txt");

// Получение списка файлов в папке
var files = await service.ListFilesInFolderAsync("my-folder");

// Скачивание файла
using (var fileStream = await service.GetFileAsync("my-folder", "file.txt"))
{
    // Работа с файловым потоком
}

// Удаление файла
await service.DeleteFileAsync("my-folder", "file.txt");

Документация

Подробную документацию по всем доступным методам можно (будет) найти в Wiki проекта.

Требования

.NET8 AWSSDK.S3 (3.7.0 или выше)

Лицензия

Этот проект лицензирован под MIT License - см. файл LICENSE для деталей.

Вклад в проект

Мы приветствуем вклад в развитие проекта! Пожалуйста, ознакомьтесь с нашим руководством по внесению изменений перед тем, как отправлять pull request.

Поддержка

Если у вас возникли проблемы или есть предложения по улучшению библиотеки, пожалуйста, создайте issue в GitHub репозитории проекта.

Авторы

algmironov

Благодарности

Спасибо команде Cloud.ru за отличный сервис Object Storage.

Библиотека использует AWSSDK.S3 для взаимодействия с S3-совместимым API

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
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
2.0.0 68 10/20/2024
1.0.0 113 7/20/2024 1.0.0 is deprecated because it has critical bugs.

- исправлена проблема с подписью: добавлен параметр AuthenticationRegion согласно изменениям в api Cloud.ru
- добавлен Builder для более удобного создания клиента