frostfs-sdk-csharp/src/FrostFS.SDK.ClientV2/Services/Container.cs
Ivan Pchelintsev 11eff4e23e [#1] Move files to top level directory
Signed-off-by: Ivan Pchelintsev <i.pchelintsev@yadro.com>
2024-05-22 14:29:20 +03:00

89 lines
No EOL
2.5 KiB
C#

using FrostFS.Container;
using FrostFS.Refs;
using FrostFS.SDK.ClientV2.Mappers.GRPC;
namespace FrostFS.SDK.ClientV2;
public partial class Client
{
public async Task<GetResponse> GetContainerAsync(ContainerID cid)
{
var request = new GetRequest
{
Body = new GetRequest.Types.Body
{
ContainerId = cid
},
};
request.AddMetaHeader();
request.Sign(_key);
return await _containerServiceClient.GetAsync(request);
}
public async Task<ListResponse> ListContainersAsync()
{
var request = new ListRequest
{
Body = new ListRequest.Types.Body
{
OwnerId = _owner.ToGrpcMessage()
}
};
request.AddMetaHeader();
request.Sign(_key);
return await _containerServiceClient.ListAsync(request);
}
public async Task<PutResponse> CreateContainerAsync(Container.Container container)
{
container.OwnerId = _owner.ToGrpcMessage();
container.Version = Version.ToGrpcMessage();
var request = new PutRequest
{
Body = new PutRequest.Types.Body
{
Container = container,
Signature = _key.SignRFC6979(container),
}
};
request.AddMetaHeader();
request.Sign(_key);
return await _containerServiceClient.PutAsync(request);
}
public async Task<DeleteResponse> DeleteContainerAsync(ContainerID cid)
{
var request = new DeleteRequest
{
Body = new DeleteRequest.Types.Body
{
ContainerId = cid,
Signature = _key.SignRFC6979(cid.Value)
}
};
request.AddMetaHeader();
request.Sign(_key);
return await _containerServiceClient.DeleteAsync(request);
}
// private void PrepareContainerSessionToken(RequestMetaHeader meta, SessionToken sessionToken, ContainerID? cid,
// ContainerSessionContext.Types.Verb verb)
// {
// if (meta.SessionToken is not null) return;
// meta.SessionToken = sessionToken;
// var ctx = new ContainerSessionContext
// {
// Verb = verb
// };
// if (cid is null)
// {
// ctx.Wildcard = true;
// }
// else
// {
// ctx.ContainerId = cid;
// }
// meta.SessionToken.Body.Container = ctx;
// meta.SessionToken.Signature = _key.SignMessagePart(meta.SessionToken.Body);
// }
}