【发布时间】:2025-12-27 01:45:07
【问题描述】:
我有一个简单的 C# 控制台项目,它使用 S3 Bucket 和 s3 对象。这是一个非常简单的项目,我可以找到一个对象并使用 AmazonS3Client 读取它。
我使用这个参考来工作:
- AWSSDK.Core
- AWSSDK.S3
例如,这个功能是我项目的一部分:
public static string GetSpecialObject(string FileName, string BucketName)
{
AmazonS3Client client = new AmazonS3Client(Amazon.RegionEndpoint.EUWest1);
// Create a GetObject request
GetObjectRequest request = new GetObjectRequest
{
BucketName = BucketName,
Key = FileName
};
using (GetObjectResponse response = client.GetObject(request))
{
using (StreamReader reader = new StreamReader(response.ResponseStream))
{
string contents = reader.ReadToEnd();
return contents;
}
}
}
如您所见,它在存储桶中查找文件,我可以返回文件的值。
问题是什么 ?
我创建了一个 AWS-Lambda 项目(AWS-Lambda 函数),并尝试在那里使用 GetSpecialObject 函数。 (.Net 核心 2)
我在 AWS 上使用 AWS Toolkit 发布了我的新项目,但是当我使用 Invoke 按钮运行它时,我看到了这个错误:
"errorType": "MissingMethodException", "errorMessage": "找不到方法:'System.Collections.Generic.IList
1<System.String> Amazon.Runtime.SharedInterfaces.ICoreAmazonS3.GetAllObjectKeys(System.String, System.String, System.Collections.Generic.IDictionary2)'。", “堆栈跟踪”: [ "在 App.AWSFileClass..ctor(String accessKey, String secret, String bucket)", ……” ] }
似乎我们不能将此类 (AmazonS3Client) 用于 AWS-Lambda 服务。我用谷歌搜索了很多。我发现我们可以在 Nuget 中添加一些 Amazon S3 库,名称如下:
- Amazon.S3
- AWSSDK.Core
但是这些库很弱。
1 - 无论如何在 AWS Lambda(.net core 2) 中使用 AmazonS3Client 类?
或
2 - 无论如何给我一个使用 S3Client 类来阅读 s3object 的建议?
【问题讨论】:
-
你是怎么调用这个方法的?如果这是 Lambda 函数,那么它没有定义好(Lambda 函数必须有入口点)。
-
这是我项目的一部分。我从 Lambda 函数主方法调用它。
标签: c# amazon-web-services amazon-s3 aws-lambda