J'utilise AWS SDK pour que python interagisse avec SimpleDB.Encodage dans SimpleDB pour batch_put_attributes
client = boto3.client('sdb')
example = [
{'Name': 'test1', 'Attributes': [
{'Name': 'speaker', 'Value': 'DIEGO BASSANTE'}]},
{'Name': 'test2', 'Attributes': [
{'Name': 'speaker', 'Value': 'SERGIO JOSE'}]}]
response = client.batch_put_attributes(
DomainName='activities',
Items=example
)
Ce code fonctionne, mais si le Value
a un caractère spécial comme ñ, á, é, í, ó, ú je reçois une erreur:
botocore.exceptions.ClientError: An error occurred (SignatureDoesNotMatch) when calling the BatchPutAttributes operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
suposes SDB pour stocker les données comme UTF-8 et j'ai également essayé d'ajouter le champ AlternateValueEncoding
aux attributs comme documenté pour la méthode batch_delete_attributes
mais toujours pas de chance.
Pensé sur l'encodage des données à base64 lors de l'envoi à SDB et le décodage lors de la récupération des données, mais je ne suis pas sûr que ce soit la bonne réponse. Alors qu'est-ce qui me manque?
python: 3.6.2 boto3: 1.4.5