یک فایل میانبر برای محتوای ذخیره شده توسط برنامه خود ایجاد کنید

میانبرهای شخص ثالث در گوگل درایو، فایل‌هایی صرفاً متادیتا هستند که به فایل‌های دیگر در سیستم‌های ذخیره‌سازی خارجی متعلق به شخص ثالث پیوند دارند. این میانبرها به عنوان پیوندهای مرجع به فایل‌های «محتوا» ذخیره شده توسط یک برنامه خارج از درایو، معمولاً در یک پایگاه داده یا سیستم ذخیره‌سازی ابری متفاوت، عمل می‌کنند.

برای ایجاد یک میانبر شخص ثالث، از متد files.create از API گوگل درایو استفاده کنید و نوع MIME را روی application/vnd.google-apps.drive-sdk تنظیم کنید. هنگام ایجاد فایل، هیچ محتوایی را آپلود نکنید. برای اطلاعات بیشتر، به Google Workspace و انواع MIME پشتیبانی شده توسط گوگل درایو مراجعه کنید.

شما نمی‌توانید میانبرهای شخص ثالث را آپلود یا دانلود کنید.

نمونه‌های کد زیر نحوه ایجاد یک میانبر شخص ثالث با استفاده از یک کتابخانه کلاینت را نشان می‌دهند:

جاوا

‎drive/snippets/drive_v3/src/main/java/CreateShortcut.java‎‏
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.DriveScopes;
import com.google.api.services.drive.model.File;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.Arrays;

/* Class to demonstrate Drive's create shortcut use-case */
public class CreateShortcut {

  /**
   * Creates shortcut for file.
   *
   * @throws IOException if service account credentials file not found.
   */
  public static String createShortcut() throws IOException {
        /* Load pre-authorized user credentials from the environment.
        TODO(developer) - See https://developers.google.com/identity for
        guides on implementing OAuth2 for your application.*/
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Arrays.asList(DriveScopes.DRIVE_FILE));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);
    // Build a new authorized API client service.
    Drive service = new Drive.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Drive samples")
        .build();
    try {
      // Create Shortcut for file.
      File fileMetadata = new File();
      fileMetadata.setName("Project plan");
      fileMetadata.setMimeType("application/vnd.google-apps.drive-sdk");

      File file = service.files().create(fileMetadata)
          .setFields("id")
          .execute();
      System.out.println("File ID: " + file.getId());
      return file.getId();
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      System.err.println("Unable to create shortcut: " + e.getDetails());
      throw e;
    }
  }
}

پایتون

‎drive/snippets/drive-v3/file_snippet/create_shortcut.py‎‏
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def create_shortcut():
  """Create a third party shortcut

  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()

  try:
    # create drive api client
    service = build("drive", "v3", credentials=creds)
    file_metadata = {
        "name": "Project plan",
        "mimeType": "application/vnd.google-apps.drive-sdk",
    }

    # pylint: disable=maybe-no-member
    file = service.files().create(body=file_metadata, fields="id").execute()
    print(f'File ID: {file.get("id")}')

  except HttpError as error:
    print(f"An error occurred: {error}")
  return file.get("id")


if __name__ == "__main__":
  create_shortcut()

پی اچ پی

‎drive/snippets/drive_v3/src/DriveCreateShortcut.php‎‏
<?php
use Google\Client;
use Google\Service\Drive;
use Google\Service\Drive\DriveFile;
function createShortcut()
{
    try {

        $client = new Client();
        $client->useApplicationDefaultCredentials();
        $client->addScope(Drive::DRIVE);
        $driveService = new Drive($client);
        $fileMetadata = new DriveFile(array(
            'name' => 'Project plan',
            'mimeType' => 'application/vnd.google-apps.drive-sdk'));
        $file = $driveService->files->create($fileMetadata, array(
            'fields' => 'id'));
        printf("File ID: %s\n", $file->id);
        return $file->id;

    } catch(Exception $e) {
        echo "Error Message: ".$e;
    }

}

دات نت

‎drive/snippets/drive_v3/DriveV3Snippets/CreateShortcut.cs‎‏
using Google.Apis.Auth.OAuth2;
using Google.Apis.Drive.v3;
using Google.Apis.Services;

namespace DriveV3Snippets
{
    // Class to demonstrate Drive's create shortcut use-case
    public class CreateShortcut
    {
        /// <summary>
        /// Create a third party shortcut.
        /// </summary>
        /// <returns>newly created shortcut file id, null otherwise.</returns>
        public static string DriveCreateShortcut()
        {
            try
            {
                /* Load pre-authorized user credentials from the environment.
                 TODO(developer) - See https://developers.google.com/identity for 
                 guides on implementing OAuth2 for your application. */
                GoogleCredential credential = GoogleCredential
                    .GetApplicationDefault()
                    .CreateScoped(DriveService.Scope.Drive);

                // Create Drive API service.
                var service = new DriveService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = credential,
                    ApplicationName = "Drive API Snippets"
                });

                // Create Shortcut for file.
                var fileMetadata = new Google.Apis.Drive.v3.Data.File()
                {
                    Name = "Project plan",
                    MimeType = "application/vnd.google-apps.drive-sdk"
                };
                var request = service.Files.Create(fileMetadata);
                request.Fields = "id";
                var file = request.Execute();
                // Prints the shortcut file id.
                Console.WriteLine("File ID: " + file.Id);
                return file.Id;
            }
            catch (Exception e)
            {
                // TODO(developer) - handle error appropriately
                if (e is AggregateException)
                {
                    Console.WriteLine("Credential Not found");
                }
                else
                {
                    throw;
                }
            }
            return null;
        }
    }
}

نود جی اس

‎drive/snippets/drive_v3/file_snippets/create_shortcut.js‎‏
import {GoogleAuth} from 'google-auth-library';
import {google} from 'googleapis';

/**
 * Creates a shortcut to a third-party resource.
 * @return {Promise<string|null|undefined>} The shortcut ID.
 */
async function createShortcut() {
  // Authenticate with Google and get an authorized client.
  // TODO (developer): Use an appropriate auth mechanism for your app.
  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/drive',
  });

  // Create a new Drive API client (v3).
  const service = google.drive({version: 'v3', auth});

  // The metadata for the new shortcut.
  const fileMetadata = {
    name: 'Project plan',
    mimeType: 'application/vnd.google-apps.drive-sdk',
  };

  // Create the new shortcut.
  const file = await service.files.create({
    requestBody: fileMetadata,
    fields: 'id',
  });

  // Print the ID of the new shortcut.
  console.log('File Id:', file.data.id);
  return file.data.id;
}

نحوه کار میانبرهای شخص ثالث

وقتی با استفاده از متد files.create یک میانبر شخص ثالث ایجاد می‌کنید، این متد از یک درخواست POST برای درج متادیتا و ایجاد میانبر به محتوای برنامه شما استفاده می‌کند:

POST https://www.googleapis.com/drive/v3/files
Authorization: AUTHORIZATION_HEADER

{
  "title": "FILE_TITLE",
  "mimeType": "application/vnd.google-apps.drive-sdk"
}

وقتی روی میانبر شخص ثالث کلیک می‌شود، کاربر به سایت خارجی که فایل در آن قرار دارد هدایت می‌شود. شناسه فایل درایو در پارامتر state قرار دارد. برای اطلاعات بیشتر، به بخش «مدیریت URL باز برای اسناد خاص برنامه» مراجعه کنید.

سپس برنامه یا وب‌سایت شخص ثالث مسئول تطبیق شناسه فایل در پارامتر state با محتوای موجود در سیستم خود است.

تصاویر کوچک سفارشی و متن قابل فهرست بندی اضافه کنید

برای افزایش قابلیت کشف فایل‌های مرتبط با میانبرهای شخص ثالث، می‌توانید هنگام درج یا تغییر فراداده فایل، هم تصاویر کوچک و هم متن قابل فهرست‌بندی را بارگذاری کنید. برای اطلاعات بیشتر، به مدیریت فراداده فایل مراجعه کنید.