mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-16 03:41:42 +00:00
feat: descargar archivos remotos sutty/editor#62
This commit is contained in:
parent
465d12a7f9
commit
5bdcaef738
1 changed files with 23 additions and 2 deletions
|
@ -21,11 +21,26 @@ module ActiveStorage
|
||||||
def update
|
def update
|
||||||
if (token = decode_verified_token)
|
if (token = decode_verified_token)
|
||||||
if acceptable_content?(token)
|
if acceptable_content?(token)
|
||||||
named_disk_service(token[:service_name]).upload token[:key], request.body, checksum: token[:checksum]
|
|
||||||
|
|
||||||
blob = ActiveStorage::Blob.find_by_key token[:key]
|
blob = ActiveStorage::Blob.find_by_key token[:key]
|
||||||
site = Site.find_by_name token[:service_name]
|
site = Site.find_by_name token[:service_name]
|
||||||
|
|
||||||
|
if remote_file?(token)
|
||||||
|
begin
|
||||||
|
url = request.body.read
|
||||||
|
body = Down.download(url, max_size: 111.megabytes)
|
||||||
|
checksum = nil
|
||||||
|
rescue StandardError => e
|
||||||
|
ExceptionNotifier.notify_exception(e, data: { key: token[:key], url: url, site: site.name })
|
||||||
|
|
||||||
|
head :content_too_large
|
||||||
|
end
|
||||||
|
else
|
||||||
|
body = request.body
|
||||||
|
checksum = token[:checksum]
|
||||||
|
end
|
||||||
|
|
||||||
|
named_disk_service(token[:service_name]).upload token[:key], body, checksum: checksum
|
||||||
|
|
||||||
site.static_files.attach(blob)
|
site.static_files.attach(blob)
|
||||||
else
|
else
|
||||||
head :unprocessable_entity
|
head :unprocessable_entity
|
||||||
|
@ -36,6 +51,12 @@ module ActiveStorage
|
||||||
rescue ActiveStorage::IntegrityError
|
rescue ActiveStorage::IntegrityError
|
||||||
head :unprocessable_entity
|
head :unprocessable_entity
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def remote_file?(token)
|
||||||
|
token[:content_type] == 'sutty/download-from-url'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue