C# 如何从lambda函数访问S3 bucket中的文件
我的S3存储桶中有一个文件,我想通过Lambda函数访问该文件 当我将此文件的路径传递给其中一个方法时,会出现以下错误: 找不到路径“/var/task/https:/s3.amazonaws.com/TestBucket/testuser/AWS_sFTP_Key.pem”的一部分 例如:C# 如何从lambda函数访问S3 bucket中的文件,c#,amazon-web-services,amazon-s3,aws-lambda,C#,Amazon Web Services,Amazon S3,Aws Lambda,我的S3存储桶中有一个文件,我想通过Lambda函数访问该文件 当我将此文件的路径传递给其中一个方法时,会出现以下错误: 找不到路径“/var/task/https:/s3.amazonaws.com/TestBucket/testuser/AWS_sFTP_Key.pem”的一部分 例如: TestMethod("https://s3.amazonaws.com/TestBucket/testuser/AWS_sFTP_Key.pem") 代码: 您可以使用AWS SDK从S3读取文件,如下
TestMethod("https://s3.amazonaws.com/TestBucket/testuser/AWS_sFTP_Key.pem")
代码:
您可以使用
AWS SDK
从S3读取文件,如下所示,但是我建议使用AWS证书管理器
或IAM
存储和管理您的证书和密钥:
PS:确保为lambda函数或bucket策略分配了适当的角色,以便bucket能够从S3
中GetObject
:
RegionEndpoint bucketRegion = RegionEndpoint.USWest2;//region where you store your file
client = new AmazonS3Client(bucketRegion);
GetObjectRequest request = new GetObjectRequest();
request.WithBucketName(BUCKET_NAME);//TestBucket
request.WithKey(S3_KEY);//testuser/AWS_sFTP_Key.pem
GetObjectResponse response = client.GetObject(request);
StreamReader reader = new StreamReader(response.ResponseStream);
String content = reader.ReadToEnd();
更多帮助:
RegionEndpoint bucketRegion = RegionEndpoint.USWest2;//region where you store your file
client = new AmazonS3Client(bucketRegion);
GetObjectRequest request = new GetObjectRequest();
request.WithBucketName(BUCKET_NAME);//TestBucket
request.WithKey(S3_KEY);//testuser/AWS_sFTP_Key.pem
GetObjectResponse response = client.GetObject(request);
StreamReader reader = new StreamReader(response.ResponseStream);
String content = reader.ReadToEnd();