localstack:aws cp 无法将文件上传到 S3 存储桶

时间:2021-05-14 15:06:00

标签: amazon-s3 localstack

我为镜像 localstack/localstack:0.12.9.1 启动了一个 Docker 容器。 我通过命令打开了这个容器的内壳:

docker exec -it <container-name> sh

接下来我想做的是将文件上传到 S3 存储桶。

我执行了命令:

aws s3 cp /my-file.txt s3://my-bucket/. --region local --endpoint-url=http://local
stack:4566

然后我收到错误消息:

<块引用>

上传失败:../../../my-file.txt 到 s3://my-bucket/。调用时发生错误 (500) PutObject 操作(达到最大重试次数:4):内部服务器 错误

为了确保这个bucket存在,我执行了以下命令:

aws s3api list-buckets --region local --endpoint-url=http://localstack:4566

我得到了:

{
    "Buckets": [
        {
            "Name": "my-bucket",
            "CreationDate": "2021-05-14T14:23:03.000Z"
        }
    ],
    "Owner": {
        "DisplayName": "webfile",
        "ID": "bcaf1ffd86f41161ca5fb16fd081034f"
    } 
}

所以问题不在于桶丢失了。

你知道为什么我不能上传文件到 S3 吗?

1 个答案:

答案 0 :(得分:0)

您是否还确保文件 /my-file.txt 存在?因为它应该位于内部容器

对 s3 进行了一些更改/修复。您是否也尝试过使用 localstack/localstack:latest 图像?

作为一种解决方法,您可以打开端口 4566 并从容器外部与其交互,这应该可行。这也可以避免您将文件复制到容器中。