我正在运行一个定制的解决方案来管理播客录制。一切都是通过 bash 脚本自动完成的,有一次,我将一个节目上传到 GCS,为播客的 RSS 生成 XML,然后上传 RSS。这就是我在 bash 脚本中运行的内容:
cd /path/to/tmp/files/
/path/to/gsutil cp -c -L /path/to/logs/gcloud_mp3.log *.mp3 gs://path/to/show/
wait
/path/to/gsutil -m acl set -R -a public-read gs://path/to/show/show.mp3
wait
/path/to/php /path/to/rss_building_script.php
/path/to/gsutil cp -c *.xml gs://path/to/show/
wait
/path/to/gsutil -m acl set -R -a public-read gs://gs://path/to/show/rss.xml
wait
我知道我的文件确实位于 /path/to/tmp/files/,我可以看到它们。但有时,文件不会上传,运行脚本也不会抛出任何错误。例如,昨晚,我录制了“show #1”。它录制,创建 mp3 文件,将 mp3 上传到 GCS,创建 XML,不上传 XML。我见过一些两个文件都不会上传的情况。
问题是,没有显示错误。在昨晚的第一场演出中,我得到的是
- 将 mp3 文件复制到 GCS;
- 将 ACL 设置为 mp3 文件;
- 将 ACL 设置为 xml 文件;
- 错误,XML 文件不存在。
在应该上传 XML 文件的地方,什么也没有发生。没有错误。根本不值一提。我怎么能调试这个?