提交 95b2cb86 编写于 作者: G George Claghorn 提交者: George Claghorn

Merge pull request #31854 from huacnlee/allow-more-options-for-service-url

Allow ActiveStorage::Blob#service_url to pass addition options to service.url
上级 3985f6bf
......@@ -109,8 +109,9 @@ def text?
# with users. Instead, the +service_url+ should only be exposed as a redirect from a stable, possibly authenticated URL.
# Hiding the +service_url+ behind a redirect also gives you the power to change services without updating all URLs. And
# it allows permanent URLs that redirect to the +service_url+ to be cached in the view.
def service_url(expires_in: service.url_expires_in, disposition: :inline, filename: self.filename)
service.url key, expires_in: expires_in, disposition: forcibly_serve_as_binary? ? :attachment : disposition, filename: filename, content_type: content_type
def service_url(expires_in: service.url_expires_in, disposition: :inline, filename: self.filename, **options)
service.url key, expires_in: expires_in, filename: filename, content_type: content_type,
disposition: forcibly_serve_as_binary? ? :attachment : disposition, **options
end
# Returns a URL that can be used to directly upload a file for this blob on the service. This URL is intended to be
......
......@@ -2,8 +2,11 @@
require "test_helper"
require "database/setup"
require "active_support/testing/method_call_assertions"
class ActiveStorage::BlobTest < ActiveSupport::TestCase
include ActiveSupport::Testing::MethodCallAssertions
test "create after upload sets byte size and checksum" do
data = "Hello world!"
blob = create_blob data: data
......@@ -82,6 +85,23 @@ class ActiveStorage::BlobTest < ActiveSupport::TestCase
end
end
test "urls allow for custom options" do
blob = create_blob(filename: "original.txt")
options = [
blob.key,
expires_in: blob.service.url_expires_in,
disposition: :inline,
content_type: blob.content_type,
filename: blob.filename,
thumb_size: "300x300",
thumb_mode: "crop"
]
assert_called_with(blob.service, :url, options) do
blob.service_url(thumb_size: "300x300", thumb_mode: "crop")
end
end
test "purge deletes file from external service" do
blob = create_blob
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册