سؤال

ما هي أسرع طريقة للحصول على عدد كبير من الملفات (10-50kB صغيرة نسبيا) من موقع أمازون S3 من بيثون؟ (في ترتيب 200000 - مليون الملفات).

في هذه اللحظة أنا أستخدم بوتو لتوليد عناوين توقيع، واستخدام PyCURL للحصول على الملفات واحدا تلو الآخر.

وأراد بعض نوع من المساعدة التزامن؟ PyCurl.CurlMulti الاعتراض؟

وانا منفتح على كل الاقتراحات. شكرا!

هل كانت مفيدة؟

المحلول

في حالة الثعبان، كما لا بد IO ذلك، فإن مواضيع متعددة استخدام وحدة المعالجة المركزية، ولكن من المرجح استخدام ما يصل نواة واحدة فقط. إذا كان لديك متعددة النوى، قد ترغب في النظر في وحدة متعددة المعالجات . حتى ذلك الحين قد ترغب في الحصول على كل عملية استخدام المواضيع متعددة. قد تضطر إلى القيام ببعض التغيير والتبديل من عدد المعالجات والمواضيع.

إذا كنت لا تستخدم مواضيع متعددة، وهذا هو مرشح جيد ل قائمة انتظار الصف.

نصائح أخرى

وأنا لا أعرف أي شيء عن الثعبان، ولكن بشكل عام كنت تريد كسر مهمة أسفل إلى قطع أصغر، بحيث يمكن تشغيلها بشكل متزامن. هل يمكن كسرها نزولا حسب نوع الملف، أو أبجدي أو شيء ما، ثم قم بتشغيل برنامج نصي منفصل لكل جزء من كسر.

هل يمكن النظر في استخدام s3fs ، ومجرد تشغيل أوامر نظام الملفات المتزامنة من بيثون.

ولقد تم استخدام txaws مع الملتوية للعمل S3، على الرغم من ما كنت ربما تريد فقط الحصول على URL التأكد من صحتها واستخدام twisted.web.client.DownloadPage (افتراضيا سيذهب بسعادة من تيار إلى ملف دون الكثير التفاعل).

والملتوية يجعل من السهل لتشغيل مهما كان التزامن تريد. عن شيء بناء على أمر من 200000، كنت على الارجح جعل مولد واستخدام متعاون لوضع بلدي التزامن ومجرد السماح للمولد كهربائي كل طلب تحميل المطلوبة.

إذا كنت لم تكن مألوفة مع الملتوية، ستجد نموذج يأخذ قليلا من الوقت لتعتاد على، لكنه أوه حتى يستحق كل هذا العناء. في هذه الحالة، أتوقع أن يستغرق الحد الأدنى من وحدة المعالجة المركزية والذاكرة النفقات العامة، ولكن كنت داعي للقلق حول واصفات الملف. فمن السهل جدا أن المزيج في وسيط منظور والزراعة العمل إلى آلات متعددة يجب أن تجد نفسك بحاجة إلى المزيد من واصفات الملفات أو إذا كان لديك عدة اتصالات على التي تريد أن هدم.

وماذا عن موضوع + الانتظار، وأنا أحب هذا المقال: برمجة مترابطة العملية مع بيثون

ويمكن أن يتم كل وظيفة مع الأدوات المناسبة:)

وأنت تريد استخدام الثعبان لاختبار التحمل S3 :)، لذلك أقترح إيجاد برنامج حجم تحميل كبير وتمرير صلة لذلك.

في ويندوز لدي خبرة لتثبيت برنامج ReGet (كومبيوتري، من http://reget.com ) وخلق تحميل المهام عن طريق واجهة COM.

وبالطبع هناك قد برامج أخرى مع واجهة قابلة للاستخدام موجودا.

والتحيات!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top