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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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

مَراجع

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

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

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

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

جارٍ تحميل الملفات

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

متقدم/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 للمستخدم. لاحظ استخدام الرموز المميزة للصفحة للوصول إلى قائمة النتائج الكاملة.

متقدم/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.

متقدم/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);
  }
}

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

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

متقدم/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);
  }
}