AWS S3 получить ключ от дружественного URL - PullRequest
0 голосов
/ 28 апреля 2018

Есть ли способ получить ключ

с использованием дружественного URL-адреса S3 Object с использованием python . Я знаю, что могу использовать сопоставление с образцом, но есть ли способ AWS Python, чтобы сделать это. Я знаком с чем-то, что доступно в Java (getKey ())

https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3URI.html

Например:

https://s3.amazonaws.com/myfolder/testimage1.jpg

должен вывести

myfolder/testimage1.jpg

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Это просто URL, поэтому не нужно ничего специфичного для S3. Лучше всего использовать urlparse, а затем разделить на косую черту:

# For python2 use "from urlparse import urlparse" instead
from urllib.parse import urlparse
o = urlparse('https://s3.amazonaws.com/myfolder/x/y/z/testimage1.jpg')

# As this will always have a leading slash it's safe to strip
print(o.path[1:])

# Or often what you need is the s3 bucket and key separately.
bucket, key = o.path.split('/', 2)[1:]
print(bucket)
print(key)

Выход:

myfolder/x/y/z/testimage1.jpg
myfolder
x/y/z/testimage1.jpg
0 голосов
/ 28 апреля 2018

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

In []:
from urllib.parse import urlparse   # Py3
# from urlparse import urlparse     # Py2

url = urlparse('https://s3.amazonaws.com/myfolder/testimage1.jpg')
url.path

Out[]:
'/myfolder/testimage1.jpg'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...