Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js S3 ListObjects在本地堆栈中不工作_Node.js_Typescript_Amazon S3_Localstack - Fatal编程技术网

Node.js S3 ListObjects在本地堆栈中不工作

Node.js S3 ListObjects在本地堆栈中不工作,node.js,typescript,amazon-s3,localstack,Node.js,Typescript,Amazon S3,Localstack,下面的代码是我在机器上使用的localstack。当我列出桶时,它就起作用了。但当我处理listObjects时,它返回的是空数组 import * as AWS from "aws-sdk"; let s3 = new AWS.S3({endpoint: 'http://localhost:4572', region: 'us-east-1'}); (async () => { // list buckets works, returns all my local bucket

下面的代码是我在机器上使用的
localstack
。当我列出桶时,它就起作用了。但当我处理listObjects时,它返回的是空数组

import * as AWS from "aws-sdk";

let s3 = new AWS.S3({endpoint: 'http://localhost:4572', region: 'us-east-1'});

(async () => {

  // list buckets works, returns all my local buckets
  let buckets = await s3.listBuckets().promise()
  console.log('buckets: ', buckets)

  // this returns empty array
  let listOfobjects = await s3.listObjects({Bucket: 'store-us-east-1'}).promise()
  console.log('listOfobjects: ', listOfobjects);
})()


# ls works via command line, return Invoice.pdf
aws --endpoint-url=http://localhost:4572 s3 ls s3://store-us-east-1
2020-01-15 18:02:55      82032 Invoice.pdf

非常感谢您的帮助。

好的,
本地堆栈中的listObjects
由于存储桶地址被删除而失败
${BUCKET\u NAME}.${IP\u ADDRESS}
而不是预期的格式。您只需将其添加到S3实例化中:

let s3 = new AWS.S3({
    endpoint: 'http://localhost:4572', 
    region: 'us-east-1',
    sslEnabled: false,
    s3ForcePathStyle: true 
});
此外,这并不重要,但我建议对端点使用类似的方法:

endpoint: `http://${process.env.LOCALSTACK_HOSTNAME}:4572`

您是否尝试将该地区更改为
us-west-1
?我在某个地方读到,
us-east-1
不能与api sdk一起使用。列表存储桶正在工作。listObjects不工作,因此我没有查询实际的s3存储桶。这是一个使用本地堆栈的模拟AWS环境