【问题标题】:How to create and upload data to json file in s3?如何在 s3 中创建和上传数据到 json 文件?
【发布时间】:2020-03-07 01:35:29
【问题描述】:

您好,我正在 .Net 核心中编写 Lambda 函数。我的要求是 Post api 将发送员工数据。收到数据后,我想将其存储在 S3 存储桶中。我遵循的方法是每当 Api 向 lambda 发送数据时,Empid 都是唯一的。每次我想创建一个 json 文件,文件名应该等于 emp id。我正在尝试如下编写我的函数。

public async Task<string> FunctionHandler(Employee input, ILambdaContext context)
        {
            string bucketname = "someunquebucket";
            var client = new AmazonS3Client();
            bool doesBucketExists = await AmazonS3Util.DoesS3BucketExistV2Async(client,bucketname);
            if(!doesBucketExists)
            {
                var request = new PutBucketRequest
                {
                    BucketName = "someunquebucket",
                };
            var response = await client.PutBucketAsync(request);
            }
            using (var stream = new MemoryStream(bin))
            {
                var request = new PutObjectRequest
                {
                    BucketName = bucketname,
                    InputStream = stream,
                    ContentType = "application/json",
                    Key = input.emp_id
                };
            var response = await client.PutObjectAsync(request).ConfigureAwait(false);
            }
        }

在上面的代码中,PutObjectRequest 用于将数据写入 s3 存储桶。我正在添加一些参数,例如 bucketname 等。在函数中,我正在接收员工数据。现在我想用emp id创建json文件。我找到了上面的代码,但我不确定用什么来代替 bin。有人可以帮我执行上述功能。任何帮助,将不胜感激。谢谢

【问题讨论】:

  • 我会将 json 转换为 Base 64 字符串并发送字符串:Convert.ToBase64String("string");

标签: c# amazon-s3 .net-core


【解决方案1】:

我是 .Net Core 的新手,在尝试解决类似问题时偶然发现了您的帖子。

这是我如何能够将 json 响应字符串上传到我的 s3 存储桶(希望它有所帮助)

String timeStamp = DateTime.Now.ToString("yyyyMMddHHmmssfff");
byte[] byteArray = Encoding.ASCII.GetBytes(jsonString);
var seekableStream = new MemoryStream(byteArray);
seekableStream.Position = 0;
var putRequest = new PutObjectRequest
{
    BucketName = this.BucketName,
    Key = timeStamp+"_"+reg + ".json",
    InputStream = seekableStream
};
try
{
var response2 = await this.S3Client.PutObjectAsync(putRequest);}

希望你解决了你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-12
    • 2017-09-22
    • 2016-12-26
    • 2021-12-09
    • 2018-06-08
    • 2015-03-09
    • 1970-01-01
    相关资源
    最近更新 更多