Создайте предварительно подписанный URL для объекта в корзине s3 и выполните перенаправление 301 в лямбда-aws - PullRequest
0 голосов
/ 03 июля 2019

Я столкнулся с проблемой, которую мне не удалось решить.Я хочу сгенерировать предварительно подписанный URL-адрес и перенаправить пользователя во внешнем интерфейсе по этому URL-адресу, чтобы он мог загрузить файл.По этой причине я добавил еще один триггер в свою лямбда-функцию - это API-шлюз.Вот мой код:

import os
import boto3

def lambda_handler(event, context):
  url = ""
  for record in event['Records']:
      bucket = record['s3']['bucket']['name']
      file_key = record['s3']['object']['key']
      uri_duration = 90
      s3Client = boto3.client('s3')
      url = s3Client.generate_presigned_url('get_object', Params = 
      {'Bucket': bucket, 
     'Key': file_key}, 
      ExpiresIn = uri_duration)
      print(url)
  return {"location": url }

Код должен сохранять предварительно подписанный URL-адрес в «местоположении», которое затем сопоставляется с API.Проблема в том, что после отладки я понял, что эта функция запускается один раз каждый раз, когда она вызывается либо шлюзом API, либо из корзины s3.Поэтому я хотел бы спросить, знает ли кто-нибудь, есть ли способ сгенерировать предварительно подписанный URL и сделать перенаправление 301 там каким-либо другим способом?Извините, если мой вопрос очевиден, я новичок в AWS

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