上传后s3cmd删除

时间:2014-03-28 07:57:35

标签: ubuntu amazon-s3 s3cmd

我正在尝试将文件从我的计算机上的文件夹上传到s3,并在上传完成后从本地计算机上删除该文件。

我使用此命令每分钟运行一次cron,但它无效:

s3cmd sync -r --delete-after /home/username/Videos/* s3://bucketname

这有什么不对吗?我可以使用s3cmd sync上传,所以配置没有错 - 但是删除后命令似乎不起作用。

3 个答案:

答案 0 :(得分:1)

- delete-after用于在上传新文件后删除目的地的已删除文件。它允许远程树保持一致,直到新内容的上传完成。它不会从源中删除文件。

答案 1 :(得分:0)

对于我在 bash 中的解决方案,我使用了 s3cmd putfindhttps://stackoverflow.com/a/8489394 的变体),如下所示:

find /home/username/Videos -type f | while read -r FILE; do
  s3cmd put "$FILE" s3://bucketname
  if [ $? -eq 0 ]; then
    rm -f "$FILE" && echo "Successfully uploaded file:$FILE"
  else
    echo "ERROR Failed to upload file:${FILE}" && exit 42
  fi
done

另外请注意,在 s3tools 存储库中有一个开放的功能请求,可以投票:https://github.com/s3tools/s3cmd/issues/262

答案 2 :(得分:-1)

你需要编写bash文件,并且必须通过linux rm命令删除本地机器文件,在bashfile中添加这些命令并设置cronjob。 Sync_delete_local_file.sh

s3cmd sync setacl --acl-public --recursive --preserve --skip-existing /home/username/Videos/ s3://bucketname

rm -r /home/username/Videos/*