使用 s3cmd 问题从 s3 下载 zip 文件

Posted

技术标签:

【中文标题】使用 s3cmd 问题从 s3 下载 zip 文件【英文标题】:Download zip file from s3 using s3cmd issue 【发布时间】:2021-02-25 21:34:56 【问题描述】:

我有两个关于 bash、linux 和 s3cmd 的问题需要帮助。

首先,我遇到了 linux 权限问题。我正在尝试使用 s3cmd 从 s3 存储桶下载 zip 文件,并在 bash script.sh 中使用以下命令:

/usr/bin/s3cmd get s3://<bucketname>/<folder>/zipfilename.tar.gz

我看到以下错误:permission denied

如果我尝试从 linux 机器上的命令行手动运行此命令,它会工作并下载文件:

sudo /usr/bin/s3cmd get s3://<bucketname>/<folder>/zipfilename.tar.gz

我真的不想在脚本中的命令前面使用 sudo。我如何让这个命令工作?我是否需要将chown 授予script.sh 的权限,该script.sh 实际上位于路径中,即/foldername/script.sh,或者我如何让这个get 命令起作用?

二:一旦我让这个命令工作,我如何让它从 s3 下载到 linux 主目录:~/?在上述下载命令之前,我是否必须在 bash 脚本中专门发出命令:cd ~/

非常感谢任何帮助和指导。

【问题讨论】:

【参考方案1】:

首先,确定失败的原因和原因,否则你将找不到答案。

您可以指定目的地以避免在使用该进程不可写的目录调用脚本时出现权限问题

/usr/bin/s3cmd get s3:////zipfilename.tar.gz /path/to/writeable/destination/zipfilename.tar.gz

【讨论】:

【参考方案2】:

每次只问一个问题。

对于第一个,您可以简单地使用chown 更改权限,例如:

chown “usertorunscript” filename

对于第二个: 如果它是用户主目录,你可以指定它

~user 

正如你所说,但我认为编写整个目录更安全,因此它适用于更多用户(如果需要)

【讨论】:

感谢您的意见。我将所有者更改为 ubuntu 并且以下命令有效: /usr/bin/s3cmd get s3://zipfilename.tar.gz ~ubuntu

以上是关于使用 s3cmd 问题从 s3 下载 zip 文件的主要内容,如果未能解决你的问题,请参考以下文章

S3cmd mv 命令在复制后不删除源文件

更快的 s3 存储桶复制

使用具有以下配置的 s3cmd 时出错

【ceph】s3cmd 创建bucket名称大小写问题

用户传输 10TB 文件时 s3cmd 性能极差

S3CMD 超时