предоставление разрешения на скачивание объекту в s3 - PullRequest
0 голосов
/ 22 апреля 2020

У меня написана лямбда-функция, которая создает файл с именем 'report.csv' при каждом запуске. И как и при каждом запуске, имя файла совпадает, обновляется один и тот же файл. (Было желательно)

Теперь я хочу скачать этот файл, нажав на кнопку загрузки.

Вот кнопка загрузки:

<a href="https://vipauditresult.s3-us-west-2.amazonaws.com/report.csv" download="report.csv">
    <button><Download</button>
</a>

Но я не могу чтобы получить доступ к этому файлу из пользовательского интерфейса. Я думаю, что мне нужно установить некоторые разрешения в S3 Bucket, но я не знаю, что. Может кто-нибудь помочь ??

Вот код лямбда-функции, который помещает report.csv в корзину:

s3_bucket = 'vipauditresult'
csv_buffer = StringIO()
grid_sizes.to_csv(csv_buffer, sep=",", index=False) //grid_sizes contains the csv data
s3.Object(s3_bucket, 'report.csv').put(Body=csv_buffer.getvalue())  

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

я добавил это в политику корзины:

{
    "Version": "2012-10-17",
    "Id": "http referer policy example",
    "Statement": [
        {
            "Sid": "Allow get requests originating from dwaw5cmmjauvu.cloudfront.net/",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::vipauditresult/*",
            "Condition": {
                "StringLike": {
                    "aws:Referer": [
                        "https://dwaw5cmmjauvu.cloudfront.net/*"
                    ]
                }
            }
        }
    ]
}
0 голосов
/ 22 апреля 2020

Я думаю, что проще всего было бы установить политику корзины , позволяющую publi c read для вашего одного файла:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicRead",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::vipauditresult/report.csv"
        }
    ]
}

Как добавить политику, показано здесь:

Вы также должны отключить publi c настройки доступа для ведро.

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