اذهب إلى المحتوى

السؤال

نشر

استخدم المكتبة spatie/laravel-backup لإنشاء نسخة احتياطية من المشروع ورفعها على S3، ولكن مؤخراً أصبح يظهر لي الخطأ التالي:

Copying zip failed because: An exception occurred while uploading parts to a multipart upload. The following parts had errors:
- Part 17: Error executing "UploadPart" on "https://s3.eu-west-1.amazonaws.com/my.bucket/Backups/2019-04-01-09-47-33.zip?partNumber=17&uploadId=uploadId"; AWS HTTP error: cURL error 55: SSL_write() returned SYSCALL, errno = 104 (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)  (server): 100 Continue -
- Part 16: Error executing "UploadPart" on "https://s3.eu-west-1.amazonaws.com/my.bucket/Backups/2019-04-01-09-47-33.zip?partNumber=16&uploadId=uploadId"; AWS HTTP error: Client error: `PUT https://s3.eu-west-1.amazonaws.com/my.bucket/Backups/2019-04-01-09-47-33.zip?partNumber=16&uploadId=uploadId` resulted in a `400 Bad Request` response:
<?xml version="1.0" encoding="UTF-8"?>

فيبدو أن السبب هو كبر حجم الملفات. فهل يوجد طريقة استطيع فيها زيادة حجم الملفات التي يتم رفعها عن طريق curl؟ أو تقسيم الملفات لعدة أجزاء ليتم رفعها دون نقص؟

Recommended Posts

  • 0
نشر

يمكننا زيادة وقت الاتصال عن طريق وضع الخاصية timeout لعميل S3Client 

في ملف:

config/filesystems.php

كالتالي:

'disks' => [
   's3' => [
      'driver' => 's3',
      'key'    => env('AWS_ACCESS_KEY_ID'),
      'secret' => env('AWS_SECRET_ACCESS_KEY'),
      'region' => 'us-east-1',
      'bucket' => env('FILESYSTEM_S3_BUCKET'),
      'http'   => [
         'timeout' => 360
      ]  
   ]
]

 

  • 0
نشر

يجب زيادة timeout في S3Client بهذا الشكل 

$s3 = new Aws\S3\S3Client([
    'version'     => 'latest',
    'region'      => 'us-west-2',
    'credentials' => $credentials,
    'http'        => [
        'timeout' => 390
    ]
]);

وفي لارافل يمكنك من فتح ملف filesystems.php الموجود بداخل مجلد config وفي مصفوفة disk في S3 يتم وضع التالي 

'http'   => [
 'timeout' => 390
]

لتصبح بهذا الشكل 

's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'http'   => [
'timeout' => 360
]  
],

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...