15

我已经根据文章How to fake AWS local with LocalStack设置了localstack安装。我已经测试了将文件复制到模拟的 S3 服务并且效果很好。

我开始寻找我上传的测试文件。我看到里面有我上传的文件的编码版本.localstack/data/s3_api_calls.json,但我在其他任何地方都找不到。

鉴于:DATA_DIR=/tmp/localstack/data我期待在那里找到它,但事实并非如此。

我可以直接在文件系统上访问它并不重要,但这会很好。

我的问题是:是否有任何地方/方式可以查看上传到 localstack 的模拟 S3 服务的文件?

4

5 回答 5

8

您可以使用以下命令

aws --endpoint-url=http://localhost:4572 s3 ls s3:<your-bucket-name>
于 2019-08-30T09:57:35.473 回答
8

我回去重新阅读了原始文章,其中指出:

一旦我们开始上传,我们将不会看到新文件出现在这个目录中。相反,我们的上传将作为原始数据记录在这个文件 (s3_api_calls.json) 中。

因此,似乎没有直接的方法来查看文件。

但是,Commandeer应用程序提供了一个本地堆栈视图其中包括模拟 S3 存储桶的目录列表。目前没有办法查看文件的内容,但目录结构对于我正在做的事情来说已经足够了。更新:根据@WallMobile,现在也可以查看文件的内容。

征用 localstack S3 视图

于 2019-07-12T13:18:41.583 回答
5

最新更新后,现在我们只有一个端口,即4566.

是的,你可以看到你的文件。用铬打开http://localhost:4566/your-funny-backet-name/you-weird-file-name

您现在应该能够看到文件的内容。

于 2021-01-12T12:35:24.653 回答
0

图像保存为文件中的 base64 编码字符串recorded_api_calls.json

我通过了DATA_DIR=/tmp/localstack/data

并且文件保存在/tmp/localstack/data/recorded_api_calls.json

打开文件并从任何如下所示的 API 调用中复制数据 (d)

"a": "s3", "m": "PUT", "p": "/bucket-name/foo.png

使用 bas64 解码提取此数据

您可以使用此脚本从 localstack s3 中提取数据

https://github.com/nkalra0123/extract-data-from-localstack-s3/blob/main/script.sh
于 2020-12-29T06:19:36.010 回答
0

为了列出 s3 存储桶中的确切文件夹,您可以使用以下命令:

aws --endpoint-url=http://localhost:4566 s3 ls s3://<bucket-name>/<folder-in-bucket>/
于 2021-09-17T09:56:43.827 回答