خدمة Drive المتقدمة

تسمح لك خدمة Drive المتقدّمة باستخدام Google Drive API في برمجة التطبيقات. مثل واجهة برمجة تطبيقات برمجة تطبيقات Google المضمّنة في "برمجة تطبيقات Google"، تتيح النصوص البرمجية هذه إنشاء الملفات والمجلدات والعثور عليها وتعديلها في Google Drive. وفي معظم الحالات، تكون الخدمة المضمّنة سهلة الاستخدام، إلا أن هذه الخدمة المتقدمة توفّر بعض الميزات الإضافية، بما في ذلك إمكانية الوصول إلى خصائص الملفات المخصّصة، بالإضافة إلى النُسخ السابقة للملفات والمجلدات.

مَراجع

للحصول على معلومات تفصيلية عن هذه الخدمة، يمكنك الاطّلاع على المستندات المرجعية لواجهة برمجة تطبيقات Google Drive. مثل جميع الخدمات المتقدمة في "برمجة تطبيقات Google"، تستخدم خدمة Drive المتقدمة الكائنات والطرق والمعلَمات نفسها مثل واجهة برمجة التطبيقات العامة. لمزيد من المعلومات، اطّلِع على كيفية تحديد توقيعات الطرق.

للإبلاغ عن المشاكل والعثور على الدعم الآخر، يُرجى الاطّلاع على دليل دعم الإصدار 2 من Drive.

نموذج التعليمات البرمجية

يستخدم الرمز النموذجي أدناه الإصدار 2 من واجهة برمجة التطبيقات.

تحميل الملفات

يوضّح المثال التالي كيفية حفظ ملف في حساب مستخدم على Drive.

Advanced/drive.gs
/**
 * Uploads a new file to the user's Drive.
 */
function uploadFile() {
  try {
    // Makes a request to fetch a URL.
    const image = UrlFetchApp.fetch('http://goo.gl/nd7zjB').getBlob();
    let file = {
      title: 'google_logo.png',
      mimeType: 'image/png'
    };
    // Insert new files to user's Drive
    file = Drive.Files.insert(file, image);
    console.log('ID: %s, File size (bytes): %s', file.id, file.fileSize);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to upload file with error %s', err.message);
  }
}

مجلدات المجلدات

يوضح المثال التالي كيفية إدراج مجلدات المستوى الأعلى في Drive للمستخدم. لاحظ استخدام الرموز المميزة للصفحة للوصول إلى القائمة الكاملة للنتائج.

Advanced/drive.gs
/**
 * Lists the top-level folders in the user's Drive.
 */
function listRootFolders() {
  const query = '"root" in parents and trashed = false and ' +
    'mimeType = "application/vnd.google-apps.folder"';
  let folders;
  let pageToken = null;
  do {
    try {
      folders = Drive.Files.list({
        q: query,
        maxResults: 100,
        pageToken: pageToken
      });
      if (!folders.items || folders.items.length === 0) {
        console.log('No folders found.');
        return;
      }
      for (let i = 0; i < folders.items.length; i++) {
        const folder = folders.items[i];
        console.log('%s (ID: %s)', folder.title, folder.id);
      }
      pageToken = folders.nextPageToken;
    } catch (err) {
      // TODO (developer) - Handle exception
      console.log('Failed with error %s', err.message);
    }
  } while (pageToken);
}

مراجعات النسخ

يوضّح المثال التالي كيفية إدراج النُسخ السابقة لملف معيّن. يُرجى العِلم أنّ بعض سمات النُسخ السابقة متاحة فقط لأنواع معيّنة من الملفات. على سبيل المثال، Google Workspace لا تستهلك ملفات التطبيقات مساحة في Google Drive، وبالتالي تعرض حجم ملف 0.

Advanced/drive.gs
/**
 * Lists the revisions of a given file. Note that some properties of revisions
 * are only available for certain file types. For example, Google Workspace
 * application files do not consume space in Google Drive and thus list a file
 * size of 0.
 * @param {string} fileId The ID of the file to list revisions for.
 */
function listRevisions(fileId) {
  try {
    const revisions = Drive.Revisions.list(fileId);
    if (!revisions.items || revisions.items.length === 0) {
      console.log('No revisions found.');
      return;
    }
    for (let i = 0; i < revisions.items.length; i++) {
      const revision = revisions.items[i];
      const date = new Date(revision.modifiedDate);
      console.log('Date: %s, File size (bytes): %s', date.toLocaleString(),
          revision.fileSize);
    }
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', err.message);
  }
}

إضافة خصائص مخصّصة

يوضّح المثال التالي كيفية إضافة موقع إلكتروني مخصّص إلى ملف. بخلاف خصائص المستند في "برمجة تطبيقات Google"، يمكن الوصول إلى خصائص الملفات المخصّصة في Drive خارج "برمجة تطبيقات Google" والتطبيقات الأخرى (إذا تم ضبط إذن الوصول على PUBLIC).

Advanced/drive.gs
/**
 * Adds a custom property to a file. Unlike Apps Script's DocumentProperties,
 * Drive's custom file properties can be accessed outside of Apps Script and
 * by other applications (if the visibility is set to PUBLIC).
 * @param {string} fileId The ID of the file to add the property to.
 */
function addCustomProperty(fileId) {
  try {
    const property = {
      key: 'department',
      value: 'Sales',
      visibility: 'PUBLIC'
    };
    // Adds a property to a file
    Drive.Properties.insert(property, fileId);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', err.message);
  }
}