我正在使用 AWS Lambda C# .Net 核心我正在尝试上传 .jpg 文件而不将其保存到本地计算机(部署的 Lambda 函数中不允许)我得到十六进制字符串形式的文件,可以将其重新编码为二进制文件,将其另存为文件,甚至可以正常从本地调试上传。int len = image.ImagePayload.Length;byte[] bin = new byte[len / 2];for (int i = 0; i < len; i += 2){ bin[i / 2] = Convert.ToByte(image.ImagePayload.Substring(i, 2), 16);}File.WriteAllBytes(image.ImageName, bin);PutObjectRequest putObj = new PutObjectRequest{ BucketName = input.Bucket, FilePath = image.ImageName, ContentType = "image/jpg", Key = image.ImageName};PutObjectResponse putResp = S3Client.PutObjectAsync(putObj).Result;完全部署后,AWS Lambda 失败并显示“只读文件系统”有什么方法可以在不将数据保存到文件的情况下上传到 S3?
1 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
FilePath您可以InputStream在 上使用 ,而不是使用PutObjectRequest。
byte bin = ...
using (var stream = new MemoryStream(bin))
{
var request = new PutObjectRequest
{
BucketName = input.Bucket,
InputStream = stream,
ContentType = "image/jpg",
Key = image.ImageName
}
var response = await S3Client.PutObjectAsync(request).ConfigureAwait(false);
}
- 1 回答
- 0 关注
- 115 浏览
添加回答
举报
0/150
提交
取消