将 S3 对象名称转换为 S3 对象 url (python)
Convert S3 object name into S3 object url (python)
我上传了一张名为
的图片
'Pepper, Pig (#PP).jpg'
到我的 S3 存储桶。我注意到AWS创建的对应对象url是:
'Pepper#2C+Pig+(%23PP.jpg)'
换句话说,它将所有空格转换为+并将逗号和哈希转换为十六进制。它不会更改括号。
这种编码有专门的名称吗?有什么方法可以将字符串转换成这个 AWS 对象 url 命名约定?
正如 John 在评论中指出的那样,AWS 标题是 url 编码的,因此在 python 中,因此要将 S3 object 名称转换为 S3 object url,我们可以直接使用:
import urllib
object_name = 'Pepper, Pig (#PP).jpg'
object_url = urllib.parse.quote_plus(title)
结果是:
'Pepper%2C+Pig+%28%23PP%29.jpg'
在 S3 中引用此 object 时效果完美。
我上传了一张名为
的图片'Pepper, Pig (#PP).jpg'
到我的 S3 存储桶。我注意到AWS创建的对应对象url是:
'Pepper#2C+Pig+(%23PP.jpg)'
换句话说,它将所有空格转换为+并将逗号和哈希转换为十六进制。它不会更改括号。
这种编码有专门的名称吗?有什么方法可以将字符串转换成这个 AWS 对象 url 命名约定?
正如 John 在评论中指出的那样,AWS 标题是 url 编码的,因此在 python 中,因此要将 S3 object 名称转换为 S3 object url,我们可以直接使用:
import urllib
object_name = 'Pepper, Pig (#PP).jpg'
object_url = urllib.parse.quote_plus(title)
结果是:
'Pepper%2C+Pig+%28%23PP%29.jpg'
在 S3 中引用此 object 时效果完美。