สร้างไฟล์ทางลัดไปยังเนื้อหาที่แอปของคุณเก็บไว้

ทางลัดของบุคคลที่สามใน Google ไดรฟ์เป็นไฟล์ข้อมูลเมตาเท่านั้นซึ่งลิงก์ไปยังไฟล์อื่นๆ ในระบบพื้นที่เก็บข้อมูลภายนอกของระบบพื้นที่เก็บข้อมูลของบุคคลที่สาม ทางลัดเหล่านี้จะทำหน้าที่เป็นลิงก์อ้างอิงไปยังไฟล์ "เนื้อหา" ที่แอปพลิเคชันภายนอกไดรฟ์จัดเก็บไว้ ซึ่งมักจะอยู่ในพื้นที่เก็บข้อมูลหรือระบบพื้นที่เก็บข้อมูลระบบคลาวด์อื่น

หากต้องการสร้างทางลัดของบุคคลที่สาม ให้ใช้เมธอด files.create ของ Google Drive API และตั้งค่าประเภท MIME เป็น application/vnd.google-apps.drive-sdk อย่าอัปโหลดเนื้อหาใดๆ เมื่อสร้างไฟล์ ดูข้อมูลเพิ่มเติมได้ที่ประเภท MIME ที่รองรับ Google Workspace และ Google ไดรฟ์

คุณจะอัปโหลดหรือดาวน์โหลดทางลัดของบุคคลที่สามไม่ได้

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างทางลัดของบุคคลที่สามโดยใช้ไลบรารีของไคลเอ็นต์

Java

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;
    }
  }
}

Python

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()

PHP

drive/snippets/drive_v3/src/DriveCreateShortcut.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;
    }

}

.NET

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;
        }
    }
}

Node.js

drive/snippets/drive_v3/file_snippets/create_shortcut.js
/**
 * Create a third party shortcut
 * @return{obj} shortcut Id
 * */
async function createShortcut() {
  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app

  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/drive',
  });
  const service = google.drive({version: 'v3', auth});
  const fileMetadata = {
    name: 'Project plan',
    mimeType: 'application/vnd.google-apps.drive-sdk',
  };

  try {
    const file = await service.files.create({
      resource: fileMetadata,
      fields: 'id',
    });
    console.log('File Id:', file.data.id);
    return file.data.id;
  } catch (err) {
    // TODO(developer) - Handle error
    throw err;
  }
}

แป้นพิมพ์ลัดของบุคคลที่สามทำงานอย่างไร

เมื่อสร้างทางลัดของบุคคลที่สามโดยใช้เมธอด 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 กับเนื้อหาที่เก็บไว้ในระบบ

เพิ่มภาพขนาดย่อที่กำหนดเองและข้อความที่จัดทำดัชนีได้

หากต้องการเพิ่มการค้นพบได้ของไฟล์ที่เชื่อมโยงกับทางลัดของบุคคลที่สาม คุณสามารถอัปโหลดทั้งภาพขนาดย่อและข้อความที่จัดทำดัชนีได้เมื่อแทรกหรือแก้ไขข้อมูลเมตาของไฟล์ ดูข้อมูลเพิ่มเติมได้ที่จัดการข้อมูลเมตาของไฟล์