Amazon S3 Python S3Boto 403 prohibido cuando la firma tiene el signo ‘+’

Estoy usando Django y S3Boto y cada vez que una firma tiene un signo '+' , obtengo un 403 Forbidden . Si no hay un signo '+' en la firma, obtengo el recurso correctamente. ¿Qué podría estar mal aquí?

ACTUALIZAR:

El repository está en: https://github.com/boto/boto

Los archivos en cuestión son:

 boto/utils.py boto/s3/connection.py 

NOTA: Soy bastante nuevo en Python. Intenté modificar el código pero todavía no puedo hacer la encoding correctamente.

En pocas palabras, el problema no está en S3Boto sino en una llamada a “unquote” que ocurre más adelante en la url.

Aquí respondí una pregunta similar:

Inconsistent SignatureDoesNotMatch Amazon S3 con django-pipeline, s3boto y almacenamientos

Por favor, echa un vistazo a mi solución allí.

Estoy un poco corto de tiempo (ya que son las 1:30 am), así que, lamentablemente, todavía no tengo un ejemplo de código para usted, pero creo que esto se debe a que el valor + en una URL debería estar codificado. Así que desde github, tu url de …

 https://s3.amazonaws.com/dragonflysco/static/js/plugins/blockui.js?Signature=+tahbTacs5Vkzt5jQ+hZULzGPhE=&Expires=1345019173&AWSAccessKeyId=AKIAJNCPYIZVZXKOPCHA 

realmente debería ser

 https://s3.amazonaws.com/dragonflysco/static/js/plugins/blockui.js?Signature=%2BtahbTacs5Vkzt5jQ+hZULzGPhE=&Expires=1345019173&AWSAccessKeyId=AKIAJNCPYIZVZXKOPCHA 

(Nota: reemplacé el + con% 2B)

Consulte http://www.w3schools.com/tags/ref_urlencode.asp

Para arreglar el código, agregaría una función de URLEncoding donde construye la cadena de consulta de URL.

Acabo de cometer lo que espero que sea una solución para este problema en boto. Consulte https://github.com/boto/boto/commit/a01a5d1a1e88f79ed5db52639d3674d9eb5e45dc . Por favor, hágamelo saber si esto resuelve el problema.