Создать предварительно подписанный URL-адрес для загрузки файла с открытым доступом - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть корзина с ACL по умолчанию, установленным на private.Я хочу сгенерировать предварительно подписанный URL-адрес и распространить его среди пользователей, чтобы они могли загрузить файл, и файл должен быть общедоступным после загрузки.

Я могу создать предварительно подписанный URL и загрузить файл, но файл всегда остается закрытым.Если при создании подписанного URL-адреса установить ACL на «public-read», то getSignedUrl () создает подписанный URL-адрес, но запрос PUT на этот подписанный URL-адрес приводит к отказу в доступе.

var params = {
    Bucket: "bucket name",
    Key: "file key name",
    Expires: 3600,
    ACL:"public-read",
    ContentType: "application/octet-stream"
};
s3.getSignedUrl("putObject", params);

В корзине могут содержаться как личные, так и общедоступные файлы, и я хочу установить конфиденциальность при создании подписанного URL.Как я могу этого добиться?

Я использую Amazon Amazon Javascript SDK.

1 Ответ

0 голосов
/ 13 апреля 2019

Здесь из документов AWS-S3 ...

Похоже, вам придется сделать это нелегко.

getSignedUrl(operation, params, callback) ⇒ String?
Note: You must ensure that you have static or previously resolved credentials if you
call this method synchronously (with no callback), otherwise it may not properly sign
the request. If you cannot guarantee this (you are using an asynchronous credential provider,
i.e., EC2 IAM roles), you should always call this method with an asynchronous callback.
Note: Not all operation parameters are supported when using pre-signed URLs. Certain parameters,
such as SSECustomerKey, ACL, Expires, ContentLength, or Tagging must be provided as headers when
sending a request.
If you are using pre-signed URLs to upload from a browser and need to use these fields,
see createPresignedPost()....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...