127 lines
3.8 KiB
C#
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);
|
|
}
|
|
}
|