将临时文件存储在.net lambda中,然后发布到s3Bucket



我正在使用.net c#Lambda函数生成一个.csv文件,以便进一步存储在s3存储桶中。

这是我遵循的过程:

  1. 生成.csv并将其存储在lambda函数执行的/tmp/文件夹中。在这个步骤中,我不确定它是否真的在那个路径中保存文件。

    //filepath = @"/tmp/test.csv"
    try
    {
    using (System.IO.StreamWriter file = new System.IO.StreamWriter(@filepath, true))
    {
    file.WriteLine(ID + "," + workItemType + "," + title + "," + assignedTo + "," + state + "," + iterationPath);                    
    Console.WriteLine("Successfully added");
    }
    }
    catch (Exception ex)
    {
    throw new ApplicationException(" somethings wrong: ", ex);
    }
    
  2. 将文件上传到s3 bucket。

    try
    {
    await client.PutObjectAsync(new Amazon.S3.Model.PutObjectRequest
    {
    BucketName = "mys3bucket",
    Key = "test.csv",
    ContentType = @"/tmp/test.csv"
    });
    await Task.CompletedTask;
    }
    catch (Exception ex)
    {
    Console.WriteLine("Exception in PutS3Object:" + ex.Message);                ;
    }
    

在最后一步中,我得到了这个错误消息:

PutS3Object中的异常:值'\tmp\test.csv'的格式无效。

我做错了什么?

您需要发送数据以包含在csv文件中:

await client.PutObjectAsync(new Amazon.S3.Model.PutObjectRequest
{
BucketName = "mys3bucket",
Key = "test.csv",
ContentBody = DATAINSTRINGFORMAT,
ContentType = @"text/csv"
});

或作为文件路径发送:

await client.PutObjectAsync(new Amazon.S3.Model.PutObjectRequest
{
BucketName = "mys3bucket",
Key = "test.csv",
FilePath = FILEPATHONYOURTEMPFOLDER,
ContentType = @"text/csv"
});

相关内容

最新更新