Как создать подписанный URL с ограниченным размером файла для Google Storage? - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь создать подписанный URL-адрес загрузки, чтобы клиент мог загружать файл непосредственно в корзину Google Storage, и я хочу запретить пользователям загружать большие файлы. Поэтому я хотел бы определить максимальный размер файла, который может быть загружен через подписанный URL-адрес с официальным Go SDK. К сожалению, мне не удалось найти для этого примеров. Возможно ли это и как бы вы ограничили размер файла, скажем, 1 МБ?

Ответы [ 2 ]

3 голосов
/ 03 августа 2020

Вы ищете storage.GenerateSignedPostPolicyV4, который позволяет вам установить Политический документ через PostPolicyV4Options https://cloud.google.com/storage/docs/authentication/signatures#policy -документ

storage.GenerateSignedPostPolicyV4("my-bucket", "my-object.txt", &storage.PostPolicyV4Options{
        Conditions: []storage.PostPolicyV4Condition{
            storage.ConditionContentLengthRange(0, 1<<20),
        },
})
0 голосов
/ 03 августа 2020

Документ политики позволяет вам лучше контролировать объекты, которые вы загружаете в облачное хранилище, с помощью этой функции вы можете контролировать ряд условий, которым должна удовлетворять каждая загрузка.

Поскольку вам нужно контролировать размер объекта, который необходимо загрузить, я предлагаю вам взглянуть на этот пример, указанный здесь :

{"expiration": "2020-06-16T11:11:11Z",
 "conditions": [
  ["starts-with", "$key", ""],
  {"bucket": "travel-maps"},
  {"success_action_redirect": "http://www.example.com/success_notification.html"},
  ["eq", "$Content-Type", "image/jpeg"],
  ["content-length-range", 0, 1000000],
  {"x-goog-algorithm": "GOOG4-RSA-SHA256"},
  {"x-goog-credential": "example_account@example_project.iam.gserviceaccount.com/20191102/auto/storage/goog4_request"},
  {"x-goog-date": "20191102T043530Z"}
  ]
}

Как вы можете видеть поле " content-length-range ", 0, 1000000], не позволяет документ больше 1 МБ.

...