Nous disposons d'un service Web Django utilisant la solution S3 de Swisscom AppCloud. Jusqu'à présent, nous n'avons eu aucun problème, mais sans rien changer sur l'application, nous éprouvons des erreurs ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer'))
lorsque nous essayons de télécharger des fichiers. Nous utilisons boto3 1.4.4
.Swisscom Appcloud S3 Connexion réinitialisée par l'homologue
Edit:
L'erreur a lieu après somwhere entre 10 et 30 ans. Quand j'essaye de ma machine de développement locale cela fonctionne.
from django.conf import settings
from boto3 import session
from botocore.exceptions import ClientError
class S3Client(object):
def __init__(self):
s3_session = session.Session()
self.s3_client = s3_session.client(
service_name='s3',
aws_access_key_id=settings.AWS_ACCESS_KEY,
aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
endpoint_url=settings.S3_ENDPOINT,
)
.
.
.
def add_file(self, bucket, fileobj, file_name):
self.s3_client.upload_fileobj(fileobj, bucket, file_name)
url = self.s3_client.generate_presigned_url(
ClientMethod='get_object',
Params={
'Bucket': bucket,
'Key': file_name
},
ExpiresIn=60*24*356*10 # signed for 10 years. Should be enough..
)
url, signature = self._split_signed_url(url)
return url, signature, file_name
Cela pourrait-il être un problème de version ou quoi que ce soit d'autre de notre côté?
Edit: a fait quelques essais avec s3cmd
: Je peux énumérer les seaux que j'ai accès mais pour toutes les autres commandes comme la liste de tous les objets ou une simple liste des objets dans un seau, je reçois un Retrying failed request:/([Errno 54] Connection reset by peer)
Quelle est la taille des fichiers que vous essayez de télécharger? – dentemm
@dentemm J'ai essayé avec des fichiers <1Mb. Sur le serveur, nous limitons la taille du fichier à 10Mb. – chrigu