Swisscom AppCloudのS3ソリューションを使用するDjango Webサービスがあります。これまでのところ問題はありませんでしたが、アプリケーションで何も変更せずにファイルをアップロードしようとしたときにエラーConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer'))
が発生しました。我々はboto3 1.4.4
を使用しています。Swisscom Appcloud S3接続がリセットされました
編集:
エラーがsomwhere 10〜30代の後occures。私は自分のローカル開発マシンから試してみるとうまくいきます。
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
これはバージョンの問題なのでしょうか?
編集:s3cmd
と 製いくつかのテスト:私はすべてのオブジェクトを一覧表示するか、単に私が後Retrying failed request:/([Errno 54] Connection reset by peer)
アップロードしようとしているファイルのサイズは? – dentemm
@dentemmファイル<1Mbで試しました。サーバー上では、ファイルサイズを10Mbに制限しています。 – chrigu