python 2.7.X 亚马逊客户端使用什么更好 - boto 或 boto3?
what's better to use for a python 2.7.X amazon client - boto or boto3?
我正在使用 boto3
来使用亚马逊的 kms 服务。
def __init__(self):
self.kms_client = boto3.client('kms')
def encrypt_text(self, text):
response = self.kms_client.encrypt(
KeyId = self.global_key_alias,
Plaintext = text
)
return response['CiphertextBlob']
def decrypt_text(self, encrypted_text):
# official docs state that encrypted_text should be a byte(doesn't exists in python 2)
# currently it's working when sending a string, but it's dangerous
response = self.kms_client.decrypt(
CiphertextBlob = encrypted_text
)
我正在使用 boto3,因为新功能将在那里开发。
正如注释所说,我发送的是一个字符串,而不是声明您需要发送字节类型的官方文档。
我想知道这在未来是否会改变?然后我的 api 到亚马逊将毫无用处,因为我没有 bytes
输入 python 2.7.9
有什么意见吗?想法?
您指的这些 "official docs" 在哪里?指针会有所帮助。
我认为这确实是一个关于Python 2.x 和3.x 之间兼容性的问题。在 Python 2.x 中,一个 byte
实际上是一个 str
。在Python3.x中,有一个实际的bytes
类型。
您可以使用 six 包来帮助您消除 Python 版本之间的这些差异。六中有一个six.binary_type
映射到Python中的str
2.x和Python3.x中的bytes
。
我认为您不必担心您的代码无法与未来版本的 boto3 一起使用,但您确实需要担心它在将来某个时间与 Python 3.x 一起使用。
我正在使用 boto3
来使用亚马逊的 kms 服务。
def __init__(self):
self.kms_client = boto3.client('kms')
def encrypt_text(self, text):
response = self.kms_client.encrypt(
KeyId = self.global_key_alias,
Plaintext = text
)
return response['CiphertextBlob']
def decrypt_text(self, encrypted_text):
# official docs state that encrypted_text should be a byte(doesn't exists in python 2)
# currently it's working when sending a string, but it's dangerous
response = self.kms_client.decrypt(
CiphertextBlob = encrypted_text
)
我正在使用 boto3,因为新功能将在那里开发。
正如注释所说,我发送的是一个字符串,而不是声明您需要发送字节类型的官方文档。
我想知道这在未来是否会改变?然后我的 api 到亚马逊将毫无用处,因为我没有 bytes
输入 python 2.7.9
有什么意见吗?想法?
您指的这些 "official docs" 在哪里?指针会有所帮助。
我认为这确实是一个关于Python 2.x 和3.x 之间兼容性的问题。在 Python 2.x 中,一个 byte
实际上是一个 str
。在Python3.x中,有一个实际的bytes
类型。
您可以使用 six 包来帮助您消除 Python 版本之间的这些差异。六中有一个six.binary_type
映射到Python中的str
2.x和Python3.x中的bytes
。
我认为您不必担心您的代码无法与未来版本的 boto3 一起使用,但您确实需要担心它在将来某个时间与 Python 3.x 一起使用。