تقنية

قم بتحميل الملفات من Google Drive إلى Google Cloud Storage باستخدام Google Apps Script


يصف هذا البرنامج التعليمي كيف يمكنك تحميل الملفات والمجلدات من Google Drive إلى مجموعة في Google Cloud Storage باستخدام Google Apps Script. يمكنك أيضًا إعداد مشغل يعتمد على الوقت، مثل وظيفة cron، التي تراقب مجلدًا في Google Drive الخاص بك وتقوم تلقائيًا بتحميل الملفات الواردة الجديدة إلى Google Cloud Storage. يمكن أيضًا استخدام نفس التقنية لتحميل الملفات من Google Drive إلى Firebase Storage.

قم بإنشاء دلو التخزين السحابي من Google

للبدء، انتقل إلى console.cloud.google.com/projectcreate وقم بإنشاء مشروع Google Cloud جديد. بمجرد إضافة المشروع، انتقل إلى console.cloud.google.com/storage/create-bucket وأنشئ مجموعة جديدة. امنح مجموعتك اسمًا فريدًا وحدد المنطقة التي تريد تخزين بياناتك فيها. إذا كانت الملفات التي تقوم بتحميلها خاصة ولا ترغب في جعلها عامة في أي وقت لاحق، فيمكنك تمكين خيار “فرض منع الوصول العام على هذه المجموعة”.

إنشاء حساب خدمة التخزين

بعد ذلك، انتقل إلى IAM & Admin > حسابات الخدمة console.cloud.google.com/iam-admin/serviceaccounts/create وقم بإنشاء حساب خدمة جديد. قم بتسمية حساب الخدمة الخاص بك وحدد دور “مسؤول التخزين”. قد ترغب أيضًا في إضافة دور “منشئ الرمز المميز لحساب الخدمة” إلى حساب الخدمة، حيث أن ذلك مطلوب لإنشاء عناوين URL موقعة للملفات التي تقوم بتحميلها إلى Google Cloud Storage.

من قائمة حسابات الخدمة، انقر فوق الحساب الذي قمت بإنشائه في الخطوة السابقة. انتقل إلى علامة التبويب “المفاتيح” وانقر على “إضافة مفتاح” > “إنشاء مفتاح جديد”، وحدد خيار JSON. سيؤدي هذا إلى تنزيل ملف JSON يحتوي على بيانات اعتماد حساب الخدمة. ستحتاج إلى بيانات الاعتماد هذه لتحميل الملفات إلى Google Cloud Storage.

اكتب كود البرنامج النصي لتطبيقات Google

انتقل إلى script.new لإنشاء مشروع Google Apps Script جديد. انقر على المكتبات وأضف مكتبة OAuth2 1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF إلى مشروعك. وبعد ذلك قم بإضافة ملف جديد service.js، واستخدام قيم private_key و client_email من ملف JSON لحساب الخدمة الخاص بك لإنشاء خدمة OAuth2 جديدة.

// service.js

// Replace these with your own values
const service_account = {
  private_key: '-----BEGIN PRIVATE KEY-----\n51CjpLsH8A\n-----END PRIVATE KEY-----\n',
  client_email: 'upload@storage-labnol.iam.gserviceaccount.com'
};

const getStorageService = () =>
  OAuth2.createService('FirestoreStorage')
    .setPrivateKey(service_account.private_key)
    .setIssuer(service_account.client_email)
    .setPropertyStore(PropertiesService.getUserProperties())
    .setCache(CacheService.getUserCache())
    .setTokenUrl('https://oauth2.googleapis.com/token')
    .setScope('https://www.googleapis.com/auth/devstorage.read_write');

تحميل الملفات إلى Google Cloud Storage

بعد ذلك، سنكتب وظيفة التحميل في Apps Script. تأخذ الوظيفة معرف الملف الذي تريد تحميله إلى Google Cloud Storage، واسم المجموعة، والمسار الذي تريد تخزين الملف فيه.

تستخدم الدالة getStorageService وظيفة من الخطوة السابقة لإنشاء خدمة OAuth2 جديدة. ال getAccessToken يتم استخدام طريقة خدمة OAuth2 للحصول على رمز الوصول المطلوب لتحميل الملفات إلى Google Cloud Storage.

// Replace these with your own values
const DRIVE_FILE_ID = 'abc123';
const STORAGE_BUCKET = 'labnol.appspot.com';
const FILE_PATH = 'parentFolder/subFolder';

const uploadFileToCloudStorage = () => {
  const file = DriveApp.getFileById(DRIVE_FILE_ID);
  const blob = file.getBlob();
  const bytes = blob.getBytes();

  const API = `https://www.googleapis.com/upload/storage/v1/b`;
  const location = encodeURIComponent(`${FILE_PATH}/${file.getName()}`);
  const url = `${API}/${STORAGE_BUCKET}/o?uploadType=media&name=${location}`;

  const service = getStorageService();
  const accessToken = service.getAccessToken();

  const response = UrlFetchApp.fetch(url, {
    method: 'POST',
    contentLength: bytes.length,
    contentType: blob.getContentType(),
    payload: bytes,
    headers: {
      Authorization: `Bearer ${accessToken}`
    }
  });

  const result = JSON.parse(response.getContentText());
  Logger.log(JSON.stringify(result, null, 2));
};

راجع أيضًا: نماذج تحميل الملفات لـ Google Drive



Source link

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى