как получить ключ объекта s3 по URL объекта, когда я использую aws лямбда python? или как получить объект по URL? - PullRequest
0 голосов
/ 17 апреля 2020

Я использую python boto3, когда я загружаю файл в s3, aws lambda переместит файл в другое ведро, я могу получить URL объекта по лямбда-событию, например https://xxx.s3.amazonaws.com/xxx/xxx/xxxx/xxxx/diamond+white.side.jpg

Ключ объекта is xxx/xxx/xxxx/xxxx/diamond+white.side.jpg Это простой пример, я могу заменить "+" получить ключ объекта, есть другие сложные ситуации, мне нужно получить ключ объекта по URL объекта, как я могу это сделать? спасибо !!

Ответы [ 2 ]

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

Вы должны использовать urllib.parse.unquote, а затем заменить + пробелом.

Насколько я знаю, + является единственным исключением при разборе URL, поэтому вы должны быть в безопасности, если вы делаете это вручную .

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

Я думаю, это то, что вы хотите:

url_data = "https://xxx.s3.amazonaws.com/xxx/xxx/xxxx/xxxx/diamond+white.side.jpg".split("/")[3:]
object_key = "/".join(url_data)
...