【问题标题】:AWS S3 cp creates undefined filesAWS S3 cp 创建未定义的文件
【发布时间】:2018-02-12 08:02:02
【问题描述】:

在使用 aws cli cp 命令递归复制文件时,有一个错误会创建一些未定义的文件。

aws s3 cp --recursive $HOME/$MYHOST-$MYTIMESTAMP/$MYHOST-$MYTIMESTAMP-*.xml  s3://mybucket/$MYHOST-$MYTIMESTAMP/

程序运行良好并上传到指定的存储桶。但它也会在根文件夹的存储桶之外创建一些未定义的文件。这种情况一直在发生,我必须 rm (删除)那些烦人的未定义文件。

我认为这是一个错误,然后尝试单独上传文件而不是使用通配符,结果与递归相同,它仍然在根文件夹中的存储桶之外再次创建额外的未定义文件。只有当我在 bash 脚本中运行一堆相同的 cp 命令时才会发生这种情况。在这种情况下,问题会间歇性地出现。

aws s3 cp  $HOME/$MYHOST-$MYTIMESTAMP/$MYHOST-$MYTIMESTAMP-hello.xml  s3://mybucket/$MYHOST-$MYTIMESTAMP/

但是,仅对单个文件执行此操作时,它不会显示。 我的 Cli 版本 -

aws-cli/1.14.34 Python/2.7.14+ Linux/4.4.104-39-default botocore/1.8.38

对此的任何帮助将不胜感激。

【问题讨论】:

  • $MYTIMESTAMP 解析为什么?它会从命令更改为命令吗?它可以为空,还是 $MYHOST-$MYTIMESTAMP 无法解析为有效的文件名?
  • 我已经将这些变量自定义设置为时间和主机——结果都很好。这些文件也正在上传到 s3 上的相关文件夹。谢谢提问
  • 为您的问题添加了屏幕截图。
  • 当你说to time时,你能详细说明一下吗?它看起来像时间戳,至少在未定义的文件上,从运行到运行的变化。如果使用实际值怎么办?也就是说,如果你运行aws s3 cp --recursive /home/magnus/server1-2018-02-12T01:03:16-*.xml s3://mybucket/server1-2018-02-12T01:03:16/,它会起作用吗?
  • 是的,它是时间戳的修改版本,如上图所示,我使用过 - 以保持文件和文件夹的唯一性。命名有限制,不能使用冒号和其他几个字符。请注意,我在 uniq 文件夹中上传文件。不在根目录中(那些未定义的文件是 aws 滋扰的副产品)

标签: amazon-web-services amazon-s3


【解决方案1】:

您已配置 S3 访问日志记录以将日志写入此存储桶。想必这些就是这个bucket的日志文件了。

为什么文件名以“未定义”开头尚不清楚 - 当您为存储桶设置日志记录时可能出现问题,因此日志文件前缀没有被保存 - 但文件名看起来像S3 创建的日志文件。

https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html

最佳做法是设置单独的存储桶,用于收集每个区域的 S3 访问日志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 2019-06-22
    • 2018-03-04
    相关资源
    最近更新 更多