عندما تحاول الحصول على قائمة ضخمة من الملفات من دلو AWS S3 باستخدام الأمر aws s3 ls
، يمكن أن تحدث أحيانًا مشكلة توقف القراءة مع رسالة الخطأ “The read operation timed out”. هذا يحدث عادة عندما يستغرق الطلب وقتًا طويلاً للتنفيذ بسبب عدد كبير من الملفات.
لحل هذه المشكلة، يمكنك استخدام خيارات --no-sign-request
و --region
مع الأمر aws s3 ls
لتعطيل التوقيع عند الطلب وتحديد منطقة دلو S3 على التوالي. يمكن أن يساعد هذا في تقليل الضغط على الخادم وتسريع الاستجابة. إليك كيفية تنفيذ ذلك:
shaws s3 ls --no-sign-request --region your-bucket-region --human-readable --recursive s3://your-bucket-name/your-directory/
حيث your-bucket-region
هو منطقة دلو S3 و your-bucket-name
هو اسم الدلو الخاص بك و your-directory
هو المسار إلى الدلو الفرعي الذي تحاول الوصول إليه. يجب عليك استبدال هذه القيم بالقيم الفعلية لديك.
إذا استمرت المشكلة، قد تحتاج إلى استخدام أدوات أخرى مثل AWS CLI S3 plugin للحصول على القائمة بدفعات أصغر، مما يقلل من الضغط على الخادم ويمنع حدوث مشكلة توقف القراءة.
المزيد من المعلومات
عند استخدام أمر aws s3 ls
للحصول على قائمة الملفات من دلو S3، يقوم الأمر بإرجاع قائمة بأسماء الملفات والحجم الخاص بكل ملف. وعندما يكون لديك عدد كبير جدًا من الملفات في الدلو، قد تكون عملية الاستجابة بطيئة أو تتوقف تمامًا مما يؤدي إلى حدوث خطأ “The read operation timed out”.
يمكن تجنب هذا الخطأ عن طريق استخدام خيارات مثل --no-sign-request
و --region
كما ذكرت سابقًا. بالإضافة إلى ذلك، يمكنك تجربة استخدام خيار --page-size
بقيمة تناسب حجم القائمة التي تريد الحصول عليها، مما قد يساعد في تقليل حجم البيانات التي يجب على الأمر معالجتها في كل طلب.
على الرغم من أن هذه الخطوات قد تساعد في تجنب الخطأ “The read operation timed out”، إلا أنه من الأفضل النظر في استخدام أدوات أخرى مثل AWS CLI S3 plugin للحصول على البيانات بطرق أكثر فعالية وتجنب مشاكل الأداء عند التعامل مع عدد كبير من الملفات.