Files
caliverse_server/ServerCommon/Helper/MyHomeHelper.cs
2025-05-01 07:20:41 +09:00

127 lines
3.8 KiB
C#

using Amazon.S3.Model;
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using ServerCore;
using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using MetaAssets;
namespace ServerCommon;
public static class MyHomeHelper
{
public static async Task<Result> uploadMyhomeUgcInfo( this S3ConnectorBase s3connector
, string bucketName
, string myhomeUgcInfoS3Key, string myhomeUgcInfo )
{
var result = new Result();
var err_msg = string.Empty;
using (var memory_stream = myhomeUgcInfo.toStream())
{
var request = new PutObjectRequest
{
BucketName = bucketName,
Key = myhomeUgcInfoS3Key,
InputStream = memory_stream,
};
if (false == await s3connector.uploadFile(request))
{
err_msg = $"Failed to uploadFile() !!!";
result.setFail(ServerErrorCode.S3FileUploadFailed, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
}
return result;
}
public static async Task<Result> deleteMyhomeUgcInfo( this S3ConnectorBase s3connector
, string bucketName
, string myhomeUgcInfoS3Key)
{
var result = new Result();
var err_msg = string.Empty;
var request = new DeleteObjectRequest
{
BucketName = bucketName,
Key = myhomeUgcInfoS3Key,
};
if (!await s3connector.deleteFile(request))
{
err_msg = $"Failed to deleteFile() !!!";
result.setFail(ServerErrorCode.S3FileDeleteFailed, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
public static async Task<Result> deleteMyhomeUgcInfoFolderFile( this S3ConnectorBase s3connector
, string bucketName
, string myhomeGuid )
{
var result = new Result();
var err_msg = string.Empty;
var request = new ListObjectsV2Request
{
BucketName = bucketName,
Prefix = myhomeGuid,
};
if (!await s3connector.deleteFolderFile(request))
{
err_msg = $"Failed to deleteFile() !!!";
result.setFail(ServerErrorCode.S3FileDeleteFailed, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
public static async Task<(Result, string)> getMyhomeUgcInfo( this S3ConnectorBase s3connector
, string bucketName
, string myhomeUgcInfoS3Key )
{
var result = new Result();
var err_msg = string.Empty;
var myhome_ugc_info = string.Empty;
var request = new GetObjectRequest
{
BucketName = bucketName,
Key = myhomeUgcInfoS3Key,
};
(var is_success, var stream) = await s3connector.getFileStream(request);
if ( false == is_success
|| null == stream )
{
err_msg = $"Failed to getFile() !!! - bucketName:{bucketName}, key:{myhomeUgcInfoS3Key}";
result.setFail(ServerErrorCode.S3FileGetFailed, err_msg);
Log.getLogger().error(result.toBasicString());
return (result, myhome_ugc_info);
}
myhome_ugc_info = stream.toString();
return (result, myhome_ugc_info);
}
}