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 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 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 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); } }