Gelişmiş Drive Hizmeti

Gelişmiş Drive hizmeti, Apps Komut Dosyası'ndaki Google Drive API. Benzer Apps Komut Dosyası'nın yerleşik Drive'ı hizmeti sunuyorsanız bu API, komut dosyalarının Google Drive'daki dosya ve klasörlerde değişiklik yapabilirsiniz. Çoğu durumda yerleşik kullanmak daha kolaydır, ancak bu gelişmiş hizmet, özel dosya özelliklerine erişim de dahil olmak üzere tüm dosyaların dosyalar ve klasörler içerir.

Referans

Bu hizmetle ilgili ayrıntılı bilgi için referansmıza dokümanlarına göz atın. Tümünü beğen gelişmiş hizmetleri olan, Drive hizmeti herkese açık API. Daha fazla bilgi için Yöntem imzaları nasıl oluşturulur? belirler.

Sorunları bildirmek ve diğer destek kaynaklarına ulaşmak için Drive API destek sayfasını inceleyin. rehberini inceleyin.

Örnek kod

Bu bölümdeki kod örnekleri sürüm 3'ü kullanır hakkında daha fazla bilgi edinin.

Dosya yükle

Aşağıdaki kod örneğinde, bir kullanıcının Drive'a dokunun.

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 = {
      name: 'google_logo.png',
      mimeType: 'image/png'
    };
    // Create a file in the user's Drive.
    file = Drive.Files.create(file, image, {'fields': 'id,size'});
    console.log('ID: %s, File size (bytes): %s', file.id, file.size);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed to upload file with error %s', err.message);
  }
}

Klasörleri listeleyin

Aşağıdaki kod örneğinde, kullanıcının Drive'a dokunun. sonuç.

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,
        pageSize: 100,
        pageToken: pageToken
      });
      if (!folders.files || folders.files.length === 0) {
        console.log('All folders found.');
        return;
      }
      for (let i = 0; i < folders.files.length; i++) {
        const folder = folders.files[i];
        console.log('%s (ID: %s)', folder.name, folder.id);
      }
      pageToken = folders.nextPageToken;
    } catch (err) {
      // TODO (developer) - Handle exception
      console.log('Failed with error %s', err.message);
    }
  } while (pageToken);
}

Düzeltmeleri listeleme

Aşağıdaki kod örneğinde, belirli bir dosya için düzeltmelerin nasıl listeleneceği gösterilmektedir. Not bazı dosyaların çeşitli düzeltmeler olabileceğini ve bunu yapmak için sonuç listesine erişebilirsiniz.

advanced/drive.gs
/**
 * Lists the revisions of a given file.
 * @param {string} fileId The ID of the file to list revisions for.
 */
function listRevisions(fileId) {
  let revisions;
  const pageToken = null;
  do {
    try {
      revisions = Drive.Revisions.list(
          fileId,
          {'fields': 'revisions(modifiedTime,size),nextPageToken'});
      if (!revisions.revisions || revisions.revisions.length === 0) {
        console.log('All revisions found.');
        return;
      }
      for (let i = 0; i < revisions.revisions.length; i++) {
        const revision = revisions.revisions[i];
        const date = new Date(revision.modifiedTime);
        console.log('Date: %s, File size (bytes): %s', date.toLocaleString(),
            revision.size);
      }
      pageToken = revisions.nextPageToken;
    } catch (err) {
      // TODO (developer) - Handle exception
      console.log('Failed with error %s', err.message);
    }
  } while (pageToken);
}

Dosya özellikleri ekleme

Aşağıdaki kod örneğinde, özel bir değer eklemek için appProperties alanı kullanılmaktadır özelliğini bir dosyaya ekleyebilirsiniz. Özel özellik yalnızca komut dosyası tarafından görülebilir. Bir özel özelliğini kullanmak istiyorsanız properties alanını kullanabilirsiniz. Daha fazla bilgi için Özel dosya ekleme özellikleri hakkında daha fazla bilgi edinin.

advanced/drive.gs
/**
 * Adds a custom app 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; however, appProperties are only visible to the script.
 * @param {string} fileId The ID of the file to add the app property to.
 */
function addAppProperty(fileId) {
  try {
    let file = {
      'appProperties': {
        'department': 'Sales'
      }
    };
    // Updates a file to add an app property.
    file = Drive.Files.update(file, fileId, null, {'fields': 'id,appProperties'});
    console.log(
        'ID: %s, appProperties: %s',
        file.id,
        JSON.stringify(file.appProperties, null, 2));
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', err.message);
  }
}