.Net Core library for Yandex Object Storage S3 API (https://cloud.yandex.ru/docs/storage/s3/api-ref).
Nuget Package - AspNetCore.Yandex.ObjectStorage
To inject service user extension method AddYandexObjectStorage
to IServiceCollection
services.AddYandexObjectStorage(options =>
{
options.BucketName = "bucketName";
options.AccessKey = "your-access-key";
options.SecretKey = "your-secret-key";
});
Can load options from IConfiguratiuonRoot
as: services.AddYandexObjectStorage(Configuration);
by default, it reads a section with the name YandexObjectStorage
, for example, the section in appsettings.json
below:
"YandexObjectStorage":
{
"Bucket" : "your-bucket",
"AccessKey" : "your-access-key",
"SecretKey" : "your-secret-key",
"Protocol" : "https",
"Location" : "us-east-1"
}
Options is a YandexStorageOptions
class.
It provides access to setup next properties:
string Protocol - by default -> "https"
string BucketName
string Location - by default -> "us-east-1"
string Endpoint - by default -> "storage.yandexcloud.net"
string AccessKey
string SecretKey
S3ObjectPutResponse response = await _objectStoreService.ObjectService.PutAsync(byteArr, fileName);
S3ObjectDeleteResponse response = await _objectStoreService.ObjectService.DeleteAsync(filename);
Get can return as Stream or ByteArray
// result is FluentResults wrapped content of result
var result = await _objectStoreService.ObjectService.GetAsync(fileName);
if(result.IsSuccess)
{
byte[] byteArr = await result.ReadAsByteArrayAsync();
Stream stream = await result.ReadAsStreamAsync();
}
if(result.IsFailed)
{
var error = await result.ReadErrorAsync();
}
Method | Description | Status |
---|---|---|
upload | Uploads an object to Object Storage | ✅ implemented |
get | Retrieves an object from Object Storage | ✅ implemented |
delete | Deletes an object | ✅ implemented |
deleteMultipleObjects | Deletes objects based on a list | ✅ implemented |
options | Checks whether a CORS request to an object can be made | ✅ implemented |
selectObjectContent | Filters and returns the contents of an object based on an SQL query | ✅ implemented |
copy | Copies an object stored in Object Storage | ❌ not implemented |
getObjectMeta | Retrieves object metadata | ❌ not implemented |
Method | Description | Status |
---|---|---|
create | Creates a bucket | ✅ implemented |
getMeta | Returns the bucket's metadata or an error | ✅ implemented |
listObjects | Returns a list of bucket objects. Pagination is used for output | ✅ implemented |
listBuckets | Returns a list of buckets available to the user | ✅ implemented |
deleteBucket | Deletes an empty bucket. If the bucket isn't empty, first delete all the objects inside the bucket | ✅ implemented |
getBucketEncryption | Returns information about bucket encryption. For more information about bucket encryption | ❌ not implemented |
putBucketEncryption | Adds encryption to the bucket. By default, the objects added to the bucket are encrypted with the specified KMS key | ❌ not implemented |
deleteBucketEncryption | Removes encryption from the bucket. For more information about bucket encryption | ❌ not implemented |
putBucketVersioning | Enables or pauses versioning of the bucket | ❌ not implemented |
getBucketVersioning | Returns the versioning status | ❌ not implemented |
putBucketLogging | Enables and disables logging of actions with the bucket | ❌ not implemented |
getBucketLogging | Returns settings for logging actions with the bucket | ❌ not implemented |
listObjectVersions | Returns metadata for all versions of objects in the bucket | ❌ not implemented |
Method | Description | Status |
---|---|---|
startUpload | Starts multipart upload | ❌ not implemented |
uploadPart | Uploads a part of an object | ❌ not implemented |
copyPart | Copies part of an object | ❌ not implemented |
listParts | Displays a list of uploaded parts | ❌ not implemented |
abortUpload | Aborts multipart upload | ❌ not implemented |
completeUpload | Completes multipart upload | ❌ not implemented |
listUploads | Returns a list of incomplete uploads | ❌ not implemented |