"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية دفق تحميلات الملفات إلى AWS S3 باستخدام Go؟

كيفية دفق تحميلات الملفات إلى AWS S3 باستخدام Go؟

تم النشر بتاريخ 2024-11-10
تصفح:733

How to Stream File Uploads to AWS S3 Using Go?

تحميل الملفات إلى AWS S3 باستخدام Go

نظرة عامة

يعد تحميل الملفات الكبيرة مباشرة إلى AWS S3 مع تقليل مساحة الذاكرة والقرص مهمة أساسية في الحوسبة السحابية. سيوضح هذا الدليل كيفية تحقيق ذلك باستخدام AWS SDK for Go.

الحل

لدفق تحميل ملف مباشرة إلى S3، يمكنك استخدام حزمة s3manager. فيما يلي حل خطوة بخطوة:

  1. تكوين بيانات الاعتماد والجلسة في AWS:

      قم بتعيين مفتاح الوصول والسر إلى AWS، أو استخدم موفر بيانات الاعتماد الافتراضي.
    • قم بتهيئة جلسة AWS باستخدام المحدد التكوين.
  2. إنشاء برنامج تحميل S3:

      تهيئة برنامج تحميل S3 مع الجلسة وإعدادات التكوين الاختيارية.
    • يمكنك تكوين المعلمات مثل حجم الجزء والتزامن والحد الأقصى للتحميل أجزاء.
  3. افتح الملف:

      افتح الملف الذي تريد تحميله باستخدام وظيفة os.Open.
  4. تحميل الملف:

    استخدم طريقة التحميل.تحميل مع معلومات الملف المناسبة (الحاوية والمفتاح ومؤشر الملف).
    مثال التعليمات البرمجية
يوضح نموذج التعليمات البرمجية التالي كيفية البث تحميل ملف كبير إلى AWS S3 باستخدام s3manager:

package main يستورد ( "إف إم تي" "نظام التشغيل" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/s3/s3manager" ) ثابت ( اسم الملف = "file_name.zip" ماي بوكيت = "مي بوكيت" مفتاحي = "file_name.zip" مفتاح الوصول = "" الوصول السري = "" ) الوظيفة الرئيسية () { فار awsConfig *aws.Config إذا كان AccessKey == "" || AccessSecret == "" { // تحميل بيانات الاعتماد الافتراضية awsConfig = &aws.Config{ المنطقة: aws.String("us-west-2"), } } آخر { awsConfig = &aws.Config{ المنطقة: aws.String("us-west-2"), بيانات الاعتماد: credentials.NewStaticCredentials(accessKey, AccessSecret, ""), } } // الجلسة التي سيستخدمها برنامج التحميل S3 sess := session.Must(session.NewSession(awsConfig)) // أنشئ أداة تحميل باستخدام الجلسة والخيارات الافتراضية // الرافع : = s3manager.NewUploader(sess) // قم بإنشاء أداة تحميل بالجلسة والخيارات المخصصة رافع := s3manager.NewUploader(sess, func(u *s3manager.Uploader) { u.PartSize = 5 * 1024 * 1024 // الحد الأدنى/الافتراضي لحجم الجزء المسموح به هو 5 ميجابايت u.Concurrency = 2 // الافتراضي هو 5 }) //افتح الملف و، يخطئ: = os.Open(اسم الملف) إذا أخطأت!= لا شيء { fmt.Printf ("فشل في فتح الملف %q، %v"، اسم الملف، خطأ) يعود } //تأجيل f.Close() // قم بتحميل الملف إلى S3. النتيجة، خطأ := uploader.Upload(&s3manager.UploadInput{ دلو: aws.String(myBucket)، المفتاح: aws.String(myKey)، الجسم: و، }) // في حالة فشل التحميل إذا أخطأت!= لا شيء { fmt.Printf("فشل تحميل الملف، %v"، خطأ) يعود } fmt.Printf("تم تحميل الملف إلى، %s\n"، النتيجة.الموقع)

باتباع هذه الخطوات، يمكنك بكفاءة تحميل ملفات كبيرة متعددة الأجزاء/بيانات النماذج مباشرة إلى AWS S3 مع الحد الأدنى من استخدام الذاكرة.
            
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3