Panduan ini menjelaskan cara membuat dan mengelola file di Google Drive menggunakan Google Drive API.
Membuat file
Untuk membuat file di Drive yang tidak berisi metadata atau konten,
gunakan metode create pada resource files tanpa parameter.
Saat Anda membuat file, metode ini akan menampilkan resource files. File diberi kind drive.file, id, name "Untitled", dan mimeType application/octet-stream. The
uploadType
ditandai sebagai wajib, tetapi ditetapkan secara default ke media, sehingga Anda tidak perlu
menyediakannya.
Untuk mengetahui informasi selengkapnya tentang batas file Drive, lihat Batas file dan folder.
Contoh kode berikut menunjukkan cara membuat file tanpa metadata atau konten:
Node.js
/**
* Create an empty file.
* @return {string} The created file's ID.
*/
async function createEmptyFile() {
// 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});
try {
const response = await service.files.create({});
console.log('File ID: ' + response.data.id);
return response.data.id;
} catch (err) {
// TODO(developer): Handle error
console.error(err);
}
}
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files' \
-H 'Authorization: Bearer ACCESS_TOKEN'
Ganti kode berikut:
- ACCESS_TOKEN: Token OAuth 2.0 aplikasi Anda.
Menggunakan parameter kolom
Jika ingin menentukan kolom yang akan ditampilkan dalam respons, Anda dapat menetapkan
fields parameter sistem
dengan metode apa pun dari resource files. Jika Anda menghapus parameter fields, server akan menampilkan kumpulan kolom default yang khusus untuk metode tersebut. Misalnya, metode
list hanya menampilkan kolom kind, id,
name, mimeType, dan resourceKey untuk setiap file. Untuk menampilkan kolom yang berbeda, lihat Menampilkan kolom tertentu.
Kepemilikan file
Saat file dibuat menggunakan Drive API, kepemilikan bergantung pada kredensial autentikasi yang digunakan oleh aplikasi dengan cara berikut:
Akun pengguna (OAuth 2.0): Jika aplikasi diautentikasi atas nama pengguna, pengguna tersebut akan menjadi pemilik file. File tersebut kemudian berada di folder Drive Saya atau folder yang ditentukan. File tersebut menggunakan kuota penyimpanan pengguna.
Akun Layanan: Jika aplikasi diautentikasi menggunakan Akun Layanan, Akun Layanan tersebut adalah pemilik file. File tersebut kemudian berada di penyimpanan Drive khusus Akun Layanan. File tidak akan muncul dalam akun penyimpanan Drive lain kecuali jika dibagikan secara eksplisit. Jika Akun Layanan dihapus, semua file yang dimilikinya akan segera dihapus.
Jika Anda menggunakan Akun Layanan, tetapi ingin akun pengguna tertentu memiliki file, gunakan Delegasi di Seluruh Domain. Hal ini memungkinkan Akun Layanan meniru pengguna dan membuat file atas nama pengguna. Untuk mengetahui informasi selengkapnya, lihat Mendelegasikan otoritas di seluruh domain ke akun layanan.
Untuk mengetahui informasi selengkapnya tentang izin file, lihat Membagikan file, folder, dan drive.
Membuat ID untuk digunakan dengan file Anda
Metode generateIds pada resource
files memungkinkan Anda membuat ID file unik
yang dapat digunakan saat membuat atau menyalin file dan folder di
Drive. Hal ini dapat berguna jika Anda perlu mengontrol ID file dari aplikasi, bukan membiarkan Drive menetapkannya secara otomatis.
Anda dapat menetapkan jumlah ID yang dibuat menggunakan
count parameter kueri.
Jika count tidak ditetapkan, 10 ID akan ditampilkan secara default. Jumlah maksimum ID yang dapat Anda minta dibatasi hingga 1.000.
Anda juga dapat menetapkan
space tempat ID
dapat digunakan dan
type item yang dapat digunakan
ID.
Setelah ID dibuat, ID tersebut dapat diteruskan ke metode create atau copy melalui kolom id. Hal ini memastikan bahwa file yang dibuat atau disalin menggunakan ID yang telah ditentukan.
Jika file berhasil dibuat atau disalin, percobaan ulang berikutnya akan menampilkan respons kode status HTTP 409
Conflict dan file duplikat tidak akan dibuat.
Perhatikan bahwa ID yang dibuat sebelumnya tidak didukung untuk pembuatan
file Google Workspace, kecuali untuk application/vnd.google-apps.drive-sdk
dan application/vnd.google-apps.folder jenis
MIME. Demikian pula, upload yang mereferensikan konversi ke format file Google Workspace tidak didukung.
Contoh kode berikut menunjukkan cara membuat ID file unik:
Node.js
/**
* Pre-generate unique file IDs.
*/
async function generateFileIds() {
// 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});
try {
const response = await service.files.generateIds({
count: 10,
space: 'drive'
});
const ids = response.data.ids;
console.log('Generated IDs:');
for (const id of ids) {
console.log(id);
}
} catch (err) {
// TODO(developer): Handle error
console.error(err);
}
}
curl
curl 'https://www.googleapis.com/drive/v3/files/generateIds?count=10&space=drive' \
-H 'Authorization: Bearer ACCESS_TOKEN'
Ganti kode berikut:
- ACCESS_TOKEN: Token OAuth 2.0 aplikasi Anda.
Membuat file khusus metadata
File khusus metadata tidak berisi konten. Metadata adalah data (seperti name, mimeType, dan createdTime) yang menjelaskan file. Kolom seperti name tidak bergantung pada pengguna dan muncul sama untuk setiap pengguna, sedangkan kolom seperti viewedByMeTime berisi nilai khusus pengguna.
Salah satu contoh file khusus metadata adalah folder dengan jenis MIME application/vnd.google-apps.folder. Untuk mengetahui informasi selengkapnya, lihat Membuat dan
mengisi folder. Contoh lainnya adalah pintasan yang mengarah ke file lain di Drive dengan jenis MIME application/vnd.google-apps.shortcut. Untuk mengetahui informasi selengkapnya, lihat Membuat
pintasan ke file Drive.
Mengelola gambar thumbnail
Thumbnail membantu pengguna mengidentifikasi file Drive. Drive dapat otomatis membuat thumbnail untuk jenis file umum atau Anda dapat menyediakan gambar thumbnail yang dibuat oleh aplikasi Anda. Untuk mengetahui informasi selengkapnya, lihat Mengupload thumbnail.
Menyalin file yang ada
Untuk menyalin file, dan menerapkan update yang diminta, gunakan metode copy pada resource files. Untuk menemukan yang akan disalin, gunakan metode.fileIdlist
Anda dapat menerapkan update melalui semantik patch, yang berarti Anda dapat membuat modifikasi sebagian pada resource. Anda harus menetapkan kolom yang ingin diubah secara eksplisit dalam permintaan. Kolom apa pun yang tidak disertakan dalam permintaan akan mempertahankan nilai yang ada. Untuk mengetahui informasi selengkapnya, lihat Bekerja dengan resource sebagian.
Anda dapat menetapkan ID file yang disalin menggunakan metode generateIds. Untuk mengetahui informasi selengkapnya, lihat
Membuat ID untuk digunakan dengan file Anda.
Perhatikan bahwa Anda harus menggunakan cakupan Drive API yang sesuai untuk mengotorisasi panggilan. Untuk mengetahui informasi selengkapnya tentang cakupan Drive, lihat Memilih cakupan Google Drive API.
Contoh kode berikut menunjukkan cara menyalin file dan memperbarui namanya:
Node.js
/**
* Copy an existing file.
* @return {string} The copied file's ID.
*/
async function copyFile() {
// 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});
try {
const response = await service.files.copy({
fileId: 'FILE_ID',
requestBody: {
name: 'FILE_COPY_NAME'
}
});
console.log('Copied file ID: ' + response.data.id);
return response.data.id;
} catch (err) {
// TODO(developer): Handle error
console.error(err);
}
}
Ganti kode berikut:
- FILE_ID: ID file yang akan disalin.
- FILE_COPY_NAME: Nama file baru.
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/copy' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "FILE_COPY_NAME"
}'
Ganti kode berikut:
- FILE_ID: ID file yang akan disalin.
- ACCESS_TOKEN: Token OAuth 2.0 aplikasi Anda.
- FILE_COPY_NAME: Nama file baru.
Batas dan pertimbangan
Saat Anda bersiap menyalin file, perhatikan batas dan pertimbangan berikut:
Izin:
- Objek
DownloadRestrictionsMetadatadari resourcefilesmenentukan siapa yang dapat menyalin file. Untuk mengetahui informasi selengkapnya, lihat Mencegah pengguna mendownload, mencetak, atau menyalin file Anda. - Resource kolom
capabilities.canCopymenentukan apakah pengguna dapat menyalin file. Untuk mengetahui informasi selengkapnya, lihat Memahami kemampuan file. - Pengguna yang membuat salinan memiliki file yang disalin. Tidak ada setelan berbagi lain dari file sumber yang direplikasi. Jika salinan dibuat di folder bersama, salinan tersebut akan mewarisi izin folder tersebut.
- Kepemilikan file yang disalin dapat berubah dan salinan mungkin tidak mewarisi setelan berbagi file asli. Setelan ini mungkin perlu direset.
- Objek
Pengelolaan file:
- Beberapa file, seperti pintasan pihak ketiga, tidak dapat disalin.
- Anda hanya dapat menyalin file ke satu folder induk. Menentukan beberapa induk tidak didukung. Jika kolom
parentstidak ditentukan, file akan mewarisi induk yang dapat ditemukan dari file sumber. - Meskipun folder adalah jenis file, Anda tidak dapat menyalin folder.
Sebagai gantinya, buat folder tujuan dan tetapkan kolom
parentsfile yang ada ke folder tujuan. Kemudian, Anda dapat menghapus folder sumber asli. - Kecuali jika nama file baru ditentukan, metode
copyakan menghasilkan file dengan nama yang sama dengan file asli. - Penggunaan
copyyang berlebihan dapat menyebabkan Anda melampaui batas kuota Drive API. Untuk mengetahui informasi selengkapnya, lihat Batas penggunaan.
Topik terkait
Berikut beberapa langkah berikutnya yang dapat Anda coba:
Untuk mengupload data file saat Anda membuat atau memperbarui file, lihat Mengupload data file.
Untuk membuat file di folder tertentu, lihat Membuat file di folder tertentu.
Untuk memindahkan file, lihat Memindahkan file antar- folder.
Untuk menggunakan metadata file, lihat Mengelola metadata file.
Untuk menghapus file, lihat Memindahkan file dan folder ke sampah atau menghapusnya.