[#1] Add Object Head/Put/Delete operations

Signed-off-by: Ivan Pchelintsev <i.pchelintsev@yadro.com>
This commit is contained in:
Ivan Pchelintsev 2024-05-16 10:01:08 +03:00
parent ee1bf29304
commit 013d8a8436
13 changed files with 192 additions and 12 deletions

View file

@ -1,10 +1,10 @@
using FrostFS.SDK.ClientV2;
using FrostFS.SDK.ClientV2.Mappers.GRPC;
using FrostFS.SDK.ModelsV2;
using Google.Protobuf;
namespace FrostFS.SDK.Service;
// TODO: Проверять ответы Grpc
public class FrostFsService
{
private readonly IFrostFSClient _client;
@ -42,4 +42,33 @@ public class FrostFsService
{
var deleteContainerResponse = await _client.DeleteContainerAsync(containerId.ToGrpcMessage());
}
public async Task<ObjectHead> GetObjectHeadAsync(ContainerId containerId, ObjectId objectId)
{
var getObjectHeadResponse = await _client.GetObjectHeadAsync(
containerId.ToGrpcMessage(),
objectId.ToGrpcMessage()
);
return getObjectHeadResponse.Body.Header.Header.ToModel();
}
public async Task<ObjectId> PutObjectAsync(ContainerId containerId, Stream data)
{
var putObjectResponse = await _client.PutObjectAsync(containerId.ToGrpcMessage(), data);
return ObjectId.FromHash(putObjectResponse.Body.ObjectId.Value.ToByteArray());
}
public async Task<ObjectId> PutObjectAsync(ContainerId containerId, byte[] data)
{
var putObjectResponse = await _client.PutObjectAsync(containerId.ToGrpcMessage(), new MemoryStream(data));
return ObjectId.FromHash(putObjectResponse.Body.ObjectId.Value.ToByteArray());
}
public async Task DeleteObjectAsync(ContainerId containerId, ObjectId objectId)
{
var deleteObjectResponse = await _client.DeleteObjectAsync(
containerId.ToGrpcMessage(),
objectId.ToGrpcMessage()
);
}
}