【发布时间】:2019-11-09 14:35:41
【问题描述】:
我有一个 awscli 命令可以将内容上传到 s3 存储桶。我需要在 ruby 脚本上运行这个命令。该命令在终端中执行时有效。我尝试使用几种方法,例如backticks 和Kernel#system。
value = `aws s3 cp #{published_files} s3://example_bucket/#{meeting_id} --recursive --region us-west-2`
但他们似乎都没有执行任务。任何人都可以提出任何建议吗?会有很大帮助
【问题讨论】:
-
您尝试过 AWS Ruby 客户端 docs.aws.amazon.com/sdkforruby/api/Aws/S3/Client.html 吗?您能否在从 Ruby 脚本执行时指定您有什么标准错误/标准输出?您是否在运行 awscli 命令的同一环境中执行脚本?
-
@Yann 该脚本在完成在线课堂后运行,脚本将接收课堂录音的路径。我需要将录音上传到存储桶。我在同一台服务器上执行了命令。
-
@Yann 我不需要回复。我只需要运行这个 cli 命令。
-
响应可能包含尝试执行命令时发生的实际错误。
Kernel#system应该可以工作。尝试以下调试步骤:执行irb中的命令,尝试不带参数的简单aws 命令,如aws s3api list-buckets,打印带有插入参数的aws 命令并验证它们是否正确。
标签: ruby amazon-web-services amazon-s3 aws-cli