class ActiveStorage::Blob
def upload(io)
Normally, you do not have to call this method directly at all. Use the factory class methods of +build_after_upload+
and store that in +byte_size+ on the blob record.
checksum does not match what the service receives, an exception will be raised. We also measure the size of the +io+
Prior to uploading, we compute the checksum, which is sent to the service for transit integrity validation. If the
you should instead simply create a new blob based on the old one.
using this method after a file has already been uploaded to fit with a blob. If you want to create a derivative blob,
Uploads the +io+ to the service on the +key+ for this blob. Blobs are intended to be immutable, so you shouldn't be
def upload(io) self.checksum = compute_checksum_in_chunks(io) self.content_type = extract_content_type(io) self.byte_size = io.size self.identified = true service.upload key, io, checksum: checksum, **service_metadata end