ruby - 剥离字符串以构建新的 S3 路径
问题描述
在我的项目中,我将单个 UUID 分配给在我的 S3 存储桶中的两个文件夹之间移动的每个上传,以便稍后个性化它们的链接。
但是,在尝试按照下面的方法格式化对象键时,下面的所有代码都
parts = old_key.split('/')
变灰/不再起作用,表明我看不到语法错误。
def move_and_rename(target_folder, prefix_generator: nil)
prefix_generator ||= -> { SecureRandom.uuid }
s3_objects.each do |obj|
prefix = prefix_generator.call
old_key = obj.key
parts = old_key.split('/')
new_last_part = "#{prefix}-#{parts.last}”
new_key = (parts[0..-2] + [new_last_part]).join('/')
new_key = s3_folder ? obj.key.sub(s3_folder, target_folder) : (parts[0..-2] + [new_last_part]).join('/')
obj.move_to(bucket: bucket_name, key: new_key)
yield(old_key: old_key, new_key: new_key, obj: obj, prefix: prefix) if block_given?
end
self
end
或者我在方法中的结构完全错误?任何指针将不胜感激。
解决方案
推荐阅读
- java - Java中的不记名令牌到期
- firebase - Google Cloud Scheduler 每分钟在设定的时间运行
- python - 如何在 Flask 中获取 HTML 按钮的数据值?
- java - 使用 Java Data(I/O)Stream 通过 TCP Socket 发送文件时文件损坏
- javascript - 如何消除
- bash - 通过 netcat 连接并在 bash 脚本中发送命令
- javascript - 如何从回调方法中获取状态的更新值?
- javascript - 有没有办法在 TypeScript 中扩展函数的类型以添加额外的参数?
- elasticsearch - Lucene 和 Elasticsearch 超出文档限制
- git - `git reset stash` 的语义是什么?