Je suis l'aide de la dernière version officielle d'Amazon S3 SDK (1.0.14.1) pour créer un outil de sauvegarde. Jusqu'à présent, tout fonctionne correctement si la taille du fichier je suis le téléchargement est en dessous de 5 MO, mais si l'un des fichiers est au-dessus de 5 MO, le téléchargement échoue avec l'exception suivante:
Système.Net.WebException: La demande a été abandonnée: La demande a été annulée. ---> Système.IO.IOException: Impossible de fermer le flux jusqu'à ce que tous les octets sont écrit. au Système.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean abandon) --- À la fin de l'exception interne trace de la pile --- au Amazon.S3.AmazonS3Client.ProcessRequestError(String nomaction, HttpWebRequest demande, WebException nous, HttpWebResponse errorResponse, Chaîne requestAddr, WebHeaderCollection& respHdrs, Type t) au Amazon.S3.AmazonS3Client.Invoquer[T](S3Request userRequest) à Amazon.S3.AmazonS3Client.PutObject(PutObjectRequest demande) BackupToolkit.S3Module.UploadFile(String sourceFileName, Chaîne destinationFileName) dans W:\code\AutoBackupTool\BackupToolkit\S3Module.cs:ligne 88 à BackupToolkit.S3Module.UploadFiles(String sourceDirectory) dans W:\code\AutoBackupTool\BackupToolkit\S3Module.cs:ligne 108
Note: 5 MO est à peu près la limite de l'échec, il peut être légèrement inférieure ou quelque chose de plus élevé
Je suis en supposant que la connexion est le moment de sortir et le flux est automatiquement fermé avant l'upload de fichier est terminée.
J'ai essayé de trouver un moyen de définir un délai long (mais je ne trouve pas l'option en AmazonS3
ou AmazonS3Config
).
Toutes les idées sur la façon d'augmenter le délai d'attente (comme une application à l'échelle de réglage, je peux l'utiliser) ou bien est-il pas lié à un problème de délai d'attente?
Code:
var s3Client = AWSClientFactory.CreateAmazonS3Client(AwsAccessKey, AwsSecretKey);
var putObjectRequest = new PutObjectRequest {
BucketName = Bucket,
FilePath = sourceFileName,
Key = destinationFileName,
MD5Digest = md5Base64,
GenerateMD5Digest = true
};
using (var upload = s3Client.PutObject(putObjectRequest)) { }