Tengo un script de python que funciona en mi máquina (OSX, python 2.7.13, boto3 1.4.4) pero no funcionará para mi colega (Windows7, de lo contrario, igual).
La autenticación parece funcionar, y podemos tanto list_objects_v2 como get_object de s3. Sin embargo, cuando intenta cargar con put_object, se agota el tiempo. Aquí hay un registro completo ; la carga comienza en la línea 45.
He intentado usar sus credenciales y funciona. Intentó cargar un archivo pequeño y funcionará cuando esté en el rango de bytes, pero incluso kb es demasiado grande para eso. Incluso lo hemos probado en otra máquina con Windows en otra conexión a Internet sin suerte.
Mi código de carga es bastante simple:
with open("tmp_build.zip", "r") as zip_to_upload: upload_response = s3.put_object(Bucket=target_bucket, Body=zip_to_upload, Key=build_type+".zip")La clave se resuelve en test.zip en nuestras ejecuciones, y el archivo tiene aproximadamente 15 mb.
¿Por qué falla en Windows? ¿Qué más información de depuración puedo darte?
Inspirándome en este problema de https://github.com/boto/boto3/issues/870 , agregué .read() a mi parámetro Body y funcionó.
Pueden ser problemas de red. estas en la misma red?
¿Puede cargarlo usando AWS-CLI? Intente lo siguiente
aws s3 cp my-file.txt s3://my-s3-bucket/data/ --debugTambién consideraría agregar X reintentos a la carga para brindarle más información sobre el error en cuestión. la mayoría de las veces estos son problemas esporádicos relacionados con la red