ruby - 下载前生成文件名
问题描述
我正在尝试在厨师运行期间下载最新的数据备份,但它正在尝试在生成文件名之前下载文件。这样做的最佳方法是什么。我要做的就是根据时间生成一个文件名并下载它。
下面的代码给出了错误undefined method 'latest_backup' for Custom resource aws_s3_file from cookbook aws.
ruby_block "generate file name" do
block do
require 'time'
latest_backup = "NOT-SET"
utc_now = Time.now.utc
utc_midday = Time.new(Time.new.year, Time.new.month, Time.new.day, 22, 00, 1 ).utc
utc_midnight = Time.new(Time.new.year, Time.new.month, Time.new.day, 10, 00, 1 ).utc
if (utc_now < utc_midday) && (utc_now > utc_midnight )
latest_backup = "data_" + Time.now.strftime("%Y%m%d") + "-00001.tgz"
elsif (utc_now > utc_midday ) && (utc_now < utc_midnight)
latest_backup = "data_" + Time.now.strftime("%Y%m%d") + "-120001.tgz"
end
end
action :create
end
aws_s3_file "/root/backup.tgz" do
remote_path "backup-dir/#{latest_backup}"
bucket "my-backups-bucket"
region "ap-southeast-2"
end
解决方案
您不能在这样的上下文中设置局部变量。由于该代码中的任何内容都不需要等到收敛时间,因此您可以在 a 之外运行代码ruby_block
并将其作为普通的局部变量。
推荐阅读
- node.js - 节点计划无限期运行
- keycloak - is there an admin API for keycloak to get the OIDC installation JSON
- node.js - Angular 7 Universal(服务器端渲染)[错误参考错误:未定义文档]
- android - Types may only contain one @Inject constructor
- javascript - 单个图像的不同部分所需的不同悬停颜色
- angular - 如何订阅 Angular ControlValueAccessor 指令中的 FormControl 值更改
- r - Excel/R 中的矩阵操作
- python - Pandas 在同一数据框中使用多列映射 groupby
- reactjs - gulp serve 命令无法在 SPFX 上使用 react
- php - 使用单个查询从两个不同的 mysql 表中获取数据时遇到问题..!