Shrine автоматически выполняет запрос на копирование при загрузке файла, загруженного на S3.
Shrine.storages = {
cache: Shrine::Storage::S3.new(...),
store: Shrine::Storage::S3.new(...),
}
cached_file = Shrine.upload(file, :cache) # performs a `put_object` operation
stored_file = Shrine.upload(cached_file, :store) # performs a `copy_object` operation
Таким образом, в потоке вложений, когда Shrine «продвигает» кэшированный файл в постоянное хранилище, внутри хранилища S3сделает запрос на копирование.
Поскольку S3 не поддерживает движущиеся объекты, вы можете просто удалить кэшированный файл после копирования.