在Typescript中从aws s3 bucket获取对象
我试图从aws s3 bucket中获取对象,但得到了空数据响应。 我的代码如下:在Typescript中从aws s3 bucket获取对象,typescript,amazon-web-services,amazon-s3,Typescript,Amazon Web Services,Amazon S3,我试图从aws s3 bucket中获取对象,但得到了空数据响应。 我的代码如下: import * as AWS from 'aws-sdk'; public async getObjects() { AWS.config.update({ accessKeyId: "MY_KEY_ID", secretAccessKey: "MY_SECRET_KEY", region: "eu-central-
import * as AWS from 'aws-sdk';
public async getObjects() {
AWS.config.update({
accessKeyId: "MY_KEY_ID",
secretAccessKey: "MY_SECRET_KEY",
region: "eu-central-1"
});
let s3 = new AWS.S3();
const response = await s3.listObjects({Bucket: 'my-bucket'});
console.log(response);
}
我从调试器得到的响应:
response:
Response {
request: [Circular],
data: null,
error: null,
retryCount: 0,
redirectCount: 0,
httpResponse:
HttpResponse {
statusCode: undefined,
headers: {},
body: undefined,
streaming: false,
stream: null },
maxRetries: 3,
maxRedirects: 10 }
s3.listObjects
不返回承诺,您应该以另一种方式调用它():
原来我无法访问aws s3的443端口,因此无法访问数据。如果您想从EC2访问s3,可以使用VPC端点使用专用aws网络()进行连接。它将允许您保持限制性防火墙面向公共互联网(如果这是您的问题),我请求我的公司允许连接,它现在工作正常。
import * as AWS from 'aws-sdk';
public getObjects() {
AWS.config.update({
accessKeyId: "MY_KEY_ID",
secretAccessKey: "MY_SECRET_KEY",
region: "eu-central-1"
});
let s3 = new AWS.S3();
s3.listObjects({Bucket: 'my-bucket'}, (err, data) => {
if (err) console.log(err, err.stack);
else console.log(data);
});
}