Как сгенерировать предварительно подписанный URL-адрес с расположением типов содержимого с помощью GCS Ruby SDK - PullRequest
1 голос
/ 27 мая 2020

В Amazon S3 SDK при генерации заранее подписанного URL-адреса я могу сгенерировать URL-адрес, устанавливающий content-disposition, но я не могу найти аналогичный способ настройки этих параметров с помощью Google. для нас:

https://www.rubydoc.info/gems/google-cloud-storage/0.20.0/Google/Cloud/Storage/File#signed_url-instance_method

Я пытаюсь загрузить файл непосредственно в корзину Google, а не через мой сервер Rails, и хочу установить размещение содержимого файла, загружаемого через заранее заданный URL. Есть способ сделать это? Есть ли способ установить метаданные объекта через заранее подписанный URL-адрес?

require "google/cloud"

gcloud = Google::Cloud.new
storage = gcloud.storage

bucket = storage.bucket "my-todo-app"
file = bucket.file "avatars/heidi/400x400.png"
shared_url = file.signed_url
# The parameters it takes is: signed_url(method: nil, expires: nil, content_type: nil, content_md5: nil, issuer: nil, client_email: nil, signing_key: nil, private_key: nil)

# how do we add content_disposition?
# how do we add object meta data?

1 Ответ

1 голос
/ 30 мая 2020

Я ищу тот же ответ, и до сих пор я нашел эту другую статью о переполнении стека, которая напрямую не касается Ruby SDK, но предлагает полезную информацию.

Google Cloud Storage: загрузите файл с другим именем

Вы также можете создать подписанные URL-адреса, которые включают параметр запроса response-content-disposition. Затем пользователи будут делать авторизованные запросы для загрузки ресурса.

Итак, похоже, что вы можете добавить параметр запроса ?response-content-disposition=[disposition-string-urlencoded] в результирующую строку со знаком.

Итак, я посмотрел на определение объекта File в Ruby SDK и, похоже, вы можете это сделать:

file.content_dispostion = "attachment" # or whatever your disposition is
url = file.signed_url

ПРИМЕЧАНИЕ. Если вы прочитали мою запись до того, как я ее отредактировал, примите мои извинения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...