我正在使用.net c#Lambda函数生成一个.csv文件,以便进一步存储在s3存储桶中。
这是我遵循的过程:
-
生成.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); }
-
将文件上传到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"
});