[#1] Add object Get operation + code quality

Signed-off-by: Ivan Pchelintsev <i.pchelintsev@yadro.com>
This commit is contained in:
Ivan Pchelintsev 2024-05-16 17:31:48 +03:00
parent 9aa93d123d
commit b307c2c899
17 changed files with 182 additions and 99 deletions

View file

@ -1,4 +1,5 @@
using FrostFS.SDK.ClientV2;
using FrostFS.SDK.ClientV2.Interfaces;
using FrostFS.SDK.ClientV2.Mappers.GRPC;
using FrostFS.SDK.ModelsV2;
@ -16,14 +17,11 @@ public class FrostFsService
public async Task<ContainerId[]> ListContainersAsync()
{
var containersIds = new List<ContainerId>();
var listContainersResponse = await _client.ListContainersAsync();
foreach (var cid in listContainersResponse.Body.ContainerIds)
{
containersIds.Add(ContainerId.FromHash(cid.Value.ToByteArray()));
}
return containersIds.ToArray();
return listContainersResponse.Body.ContainerIds.Select(
cid => ContainerId.FromHash(cid.Value.ToByteArray())
).ToArray();
}
public async Task<ContainerId> CreateContainerAsync(ModelsV2.Container container)
@ -52,12 +50,21 @@ public class FrostFsService
return getObjectHeadResponse.Body.Header.Header.ToModel();
}
public async Task<ModelsV2.Object> GetObjectAsync(ContainerId containerId, ObjectId objectId)
{
var obj = await _client.GetObjectAsync(
containerId.ToGrpcMessage(),
objectId.ToGrpcMessage()
);
return obj.ToModel();
}
public async Task<ObjectId> PutObjectAsync(ObjectHeader header, Stream payload)
{
var putObjectResponse = await _client.PutObjectAsync(header.ToGrpcMessage(), payload);
return ObjectId.FromHash(putObjectResponse.Body.ObjectId.Value.ToByteArray());
}
public async Task<ObjectId> PutObjectAsync(ObjectHeader header, byte[] payload)
{
var putObjectResponse = await _client.PutObjectAsync(header.ToGrpcMessage(), new MemoryStream(payload));