Expero.Libraries.CSharp.ObjectStorage.S3 2.5.0-beta.34859
Expero.Libraries.CSharp.ObjectStorage.S3
Пакет для работы c S3-like ObjectStorage.
Пакет содержит:
- Сервис для работы c S3-like ObjectStorage
- Фабрику для получения именованного экземпляра сервиса с разными параметрами
- Health метрика для работы c S3-like ObjectStorage
Работа с IObjectStorageS3Service
Пример подключения:
services.AddMdsObjectStorageS3Service(s =>
{
var options = //...
s.Host = options.Host; // Хост для подключеня
s.Ssl = options.Ssl; // Используем ли мы SSL для работы
s.AccessKey = options.AccessKey; // AccessKey для подключеня
s.SecretKey = options.SecretKey; // SecretKey для подключеня
s.DefaultBucket = options.DefaultBucket; // Какой бакет будет использоваться для проверки подключения и для загрузки файлов по умолчанию
});
Рекоменудуем подключать на уровне Core.Tools, и там же положить фабрику для имен бакетов, если планируется использовать несколько бакетов для работы.
Например, вот так:
public static class ObjectStorageBuckets
{
// NB: Имена необходимо указывать в lowercase
public static ObjectStorageS3BucketName Default { get; } = new("default");
public static ObjectStorageS3BucketName Feeds { get; } = new("feeds");
}
Работа с IObjectStorageS3Factory
В пакете есть возможность подключения именованного сервиса и получения экземпляра через фабрику IObjectStorageS3Factory.
Фабрика доступна через DI, при регистрации сервиса с указанием имени (AddMdsObjectStorageS3Service("Name", ...).
Пример:
services.AddMdsObjectStorageS3Service("Name", s =>
{
var options = //...
s.Host = options.Host; // Хост для подключеня
s.Ssl = options.Ssl; // Используем ли мы SSL для работы
s.AccessKey = options.AccessKey; // AccessKey для подключеня
s.SecretKey = options.SecretKey; // SecretKey для подключеня
s.DefaultBucket = options.DefaultBucket; // Какой бакет будет использоваться для проверки подключения и для загрузки файлов по умолчанию
});
internal class Uploader : IUploader
{
private readonly IObjectStorageS3Service _objectStorage;
public LoggingUploader(IObjectStorageS3Factory factory)
{
_objectStorage = factory.Create("Name");
}
/*...*/
}
N.B. Для получения экземплра сервиса IObjectStorageS3Service через DI обязательно нужно зарегиститровать сервис, используя AddMdsObjectStorageS3Service без указания имени.
Директории
При сохранении файлов в бакет, библиотека позволяет прописать директорию внутри бакета, если директория не существует, то она будет создана.
Например, если нам нужно сохранить какой-либо контент в бакет по директории dir/sub_dir/sub_sub_dir/, то код будет выглядеть так:
// Для сохранения можно использовать следующий метод из IObjectStorageS3Service
Task<FileUploadResult> IObjectStorageS3Service.UploadAsync(byte[] content, UploadParameters parameters);
Пример использования:
IObjectStorageS3Service _objectStorage; // получаем через DI
var parameters = new UploadParameters
{
Bucket = new ObjectStorageS3BucketName("my-test-bucket"),
Directory = "dir/sub_dir/sub_sub_dir/",
FileName = "may-test-image.png"
};
var result = await _objectStorage.UploadAsync(content, parameters);
Showing the top 20 packages that depend on Expero.Libraries.CSharp.ObjectStorage.S3.
| Packages | Downloads |
|---|---|
|
Expero.Libraries.CSharp.Logging
Пакет для работы с логированием.
|
1 |
.NET 7.0
- AWSSDK.S3 (>= 3.7.104.4)
- Mds.Libraries.CSharp.Abstractions (>= 2.0.1)
- Mds.Libraries.CSharp.Extensions (>= 2.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
| Version | Downloads | Last updated |
|---|---|---|
| 2.6.1 | 1 | 02/28/2026 |
| 2.6.0 | 1 | 02/28/2026 |
| 2.5.3-beta.58518 | 1 | 02/28/2026 |
| 2.5.3-beta.57288 | 1 | 02/28/2026 |
| 2.5.2 | 1 | 02/28/2026 |
| 2.5.0 | 1 | 02/28/2026 |
| 2.5.0-beta.34859 | 1 | 02/28/2026 |
| 2.5.0-beta.33792 | 1 | 02/28/2026 |
| 2.4.0 | 1 | 02/28/2026 |
| 2.4.0-beta.33162 | 1 | 02/28/2026 |
| 2.3.0 | 1 | 02/28/2026 |
| 2.3.0-beta.33748 | 1 | 02/28/2026 |
| 2.3.0-beta.27470 | 1 | 02/28/2026 |
| 2.3.0-beta.19871 | 1 | 02/28/2026 |
| 2.2.0 | 1 | 02/28/2026 |
| 2.2.0-beta.11069 | 1 | 02/28/2026 |
| 2.2.0-beta.11067 | 1 | 02/28/2026 |
| 2.1.0 | 1 | 02/28/2026 |
| 2.0.0 | 1 | 02/28/2026 |
| 1.3.0-beta.9026 | 1 | 02/28/2026 |
| 1.2.0 | 1 | 02/28/2026 |
| 1.1.0 | 1 | 02/28/2026 |
| 1.1.0-beta.7640 | 1 | 02/28/2026 |
| 1.0.0 | 1 | 02/28/2026 |
| 1.0.0-beta.7635 | 1 | 02/28/2026 |
| 1.0.0-beta.7633 | 1 | 02/28/2026 |