Setiap file, folder, dan drive bersama Google Drive telah dikaitkan
izin. Setiap resource
mengidentifikasi izin untuk type
tertentu (pengguna, grup, domain, siapa saja)
dan role
, seperti "pengomentar" atau "pembaca". Misalnya, sebuah file mungkin memiliki
izin yang memberikan akses hanya baca kepada pengguna tertentu (type=user
)
(role=reader
) sedangkan izin lainnya memberikan anggota grup tertentu
(type=group
) kemampuan untuk menambahkan komentar ke file (role=commenter
).
Untuk daftar lengkap tentang peran dan operasi yang diizinkan oleh masing-masing peran, lihat Peran & izin akses.
Skenario untuk berbagi resource Drive
Ada lima jenis skenario berbagi:
Untuk berbagi file di Drive Saya, pengguna harus memiliki
role=writer
ataurole=owner
.Jika nilai boolean
writersCanShare
disetel keFalse
untuk file, pengguna harus memilikirole=owner
.Jika pengguna dengan
role=writer
memiliki akses sementara yang diatur oleh tanggal dan waktu kedaluwarsa, mereka tidak dapat berbagi file. Untuk selengkapnya informasi, lihat Menetapkan tanggal habis masa berlaku untuk membatasi file akses.
Untuk berbagi folder di Drive Saya, pengguna harus memiliki
role=writer
ataurole=owner
.Jika nilai boolean
writersCanShare
ditetapkan keFalse
untuk file tersebut, pengguna harus memilikirole=owner
yang lebih permisif.Akses sementara (diatur menurut tanggal dan waktu habis masa berlaku) tidak diizinkan di folder Drive Saya dengan
role=writer
. Untuk selengkapnya informasi, lihat Tetapkan tanggal habis masa berlaku untuk membatasi akses file.
Untuk berbagi file di drive bersama, pengguna harus memiliki
role=writer
,role=fileOrganizer
, ataurole=organizer
.- Setelan
writersCanShare
tidak berlaku untuk item di drive bersama. Atribut ini diperlakukan seolah-olah selalu disetel keTrue
.
- Setelan
Untuk berbagi folder di drive bersama, pengguna harus memiliki
role=organizer
.- Jika pembatasan
sharingFoldersRequiresOrganizerPermission
pada drive bersama disetel keFalse
, pengguna denganrole=fileOrganizer
dapat membagikan folder di drive bersama tersebut.
- Jika pembatasan
Untuk mengelola keanggotaan drive bersama, pengguna harus memiliki
role=organizer
. Hanya pengguna dan grup dapat menjadi anggota {i>drive<i} bersama.
Tetapkan tanggal habis masa berlaku untuk membatasi akses file
Ketika Anda bekerja dengan orang-orang pada proyek yang sensitif, Anda mungkin ingin membatasi akses mereka ke file tertentu di Drive setelah periode baik. Untuk file di Drive Saya, Anda dapat menyetel tanggal habis masa berlaku ke membatasi atau menghapus akses ke file tersebut.
Untuk menetapkan tanggal habis masa berlaku:
- Menggunakan
permissions.create
dan aturpermissions.expirationTime
(bersama dengan kolom wajib diisi lainnya). Untuk informasi selengkapnya, lihat Buat izin. - Menggunakan
permissions.update
dan menetapkan kolompermissions.expirationTime
(bersama dengan metode kolom wajib diisi). Untuk informasi selengkapnya, lihat Mengubah izin akses.
Kolom expirationTime
menunjukkan kapan izin berakhir menggunakan RFC 3339
tanggal-waktu
kami. Waktu habis masa berlaku memiliki batasan berikut:
- Izin ini hanya dapat ditetapkan berdasarkan izin pengguna dan grup.
- Waktu harus berada di masa mendatang.
- Waktunya tidak boleh lebih dari setahun ke depan.
Untuk informasi selengkapnya tentang tanggal habis masa berlaku, lihat artikel berikut:
- Menetapkan tanggal habis masa berlaku untuk akses file
- Menambahkan tanggal habis masa berlaku akses kami.
Penerapan izin
Daftar izin untuk folder menyebar ke bawah, dan semua file turunan dan folder mewarisi izin akses dari induknya. Kapan pun izin akses atau berubah, penyebaran terjadi secara rekursif melalui semua folder. Misalnya, jika sebuah file ada dalam folder dan folder tersebut kemudian dipindahkan di dalam folder lain, izin akses pada folder baru itu menyebar ke file tersebut. Jika folder baru memberikan peran baru kepada pengguna file, seperti "writer", ini mengganti peran lama.
Sebaliknya, jika file mewarisi role=writer
dari folder, dan dipindahkan ke
folder lain yang menyediakan
"pembaca" , file kini mewarisi
role=reader
.
Izin yang diwarisi tidak dapat dihapus dari file atau folder di drive bersama. Sebaliknya, izin ini harus disesuaikan dengan izin akses langsung atau tidak langsung yang diwariskan. Izin yang diwarisi dapat dihapus dari item dalam "Drive Saya" atau "Dibagikan kepada saya".
Sebaliknya, izin yang diwarisi dapat diganti pada file atau folder di
Mengemudi. Jadi, jika file mewarisi role=writer
dari
Drive, Anda dapat menetapkan role=reader
pada file untuk menurunkan
tingkat izin akses.
Kemampuan
Resource Izin pada akhirnya tidak
menentukan kemampuan pengguna saat ini
untuk melakukan tindakan pada file atau folder.
Sebaliknya, resource Files berisi kumpulan
Kolom capabilities
boolean digunakan untuk menunjukkan apakah suatu tindakan dapat
yang dijalankan pada
file atau folder. Google Drive API menetapkan kolom ini berdasarkan
sumber daya izin pengguna saat ini
yang terkait dengan file atau folder.
Misalnya, saat Alex login ke aplikasi Anda dan mencoba membagikan file, peran Alex
diperiksa izin akses pada file. Jika peran itu memungkinkan
mereka untuk berbagi file,
capabilities
yang terkait dengan file tersebut, seperti canShare
, diisi
relatif terhadap peran. Jika Alex ingin membagikan file, aplikasi Anda akan memeriksa
capabilities
untuk memastikan canShare
ditetapkan ke true
.
Untuk contoh mengambil file capabilities
, lihat Memverifikasi pengguna
izin.
Membuat izin
Dua kolom berikut diperlukan saat membuat izin:
type
—type
mengidentifikasi cakupan izin (user
,group
,domain
, atauanyone
). Izin dengantype=user
berlaku untuk pengguna tertentu, sementara izin dengantype=domain
berlaku untuk semua orang di domain tertentu.role
—Kolomrole
mengidentifikasi operasi yang dapat dilakukantype
. Sebagai contoh, izin dengantype=user
danrole=reader
memberikan pengguna tertentu akses {i>read-only<i} ke file atau folder. Atau, izin dengantype=domain
danrole=commenter
memungkinkan semua orang di domain menambahkan komentar ke file. Sebagai daftar lengkap peran dan operasi yang diizinkan oleh masing-masing peran, mengacu pada Peran & izin akses.
Saat membuat izin di mana type=user
atau type=group
, Anda juga harus
sediakan emailAddress
untuk mengaitkan
pengguna atau grup
tertentu untuk izin akses itu.
Saat membuat izin di mana type=domain
, Anda juga harus memberikan
domain
untuk mengaitkan domain tertentu
ke izin.
Untuk membuat izin:
- Gunakan metode
permissions.create
denganfileId
untuk file atau folder terkait. - Dalam isi permintaan, tentukan
type
danrole
. - Jika
type=user
atautype=group
, berikanemailAddress
. Jikatype=domain
, menyediakandomain
.
Tampilkan contoh
Contoh kode berikut menunjukkan cara membuat izin. Respons menampilkan instance resource Permission
, termasuk permissionId
yang ditetapkan.
Permintaan
POST https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
{ "requests": [ { "type": "user", "role": "commenter", "emailAddress": "alex@altostrat.com" } ] }
Respons
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "commenter"
}
Menggunakan audiens target
Target audiens adalah kelompok orang—seperti departemen atau tim—yang dapat rekomendasi kepada pengguna untuk membagikan item mereka. Anda dapat mendorong pengguna untuk membagikan item dengan audiens yang lebih spesifik atau terbatas daripada seluruh organisasi/pengaturan. Target audiens dapat membantu Anda meningkatkan keamanan dan privasi data Anda, dan memudahkan pengguna untuk berbagi dengan tepat. Untuk selengkapnya informasi, lihat Tentang target audiens kami.
Untuk menggunakan audiens target:
Di konsol Google Admin, buka Menu > Direktori > Target audiens.
Anda harus login menggunakan akun dengan hak istimewa administrator super untuk tugas ini.
Di Daftar target audiens, klik nama target audiens. Kepada membuat target audiens, lihat Membuat target audiens
Salin ID unik dari URL target audiens:
https://admin.google.com/ac/targetaudiences/ID
.Buat izin dengan
type=domain
, dan setel kolomdomain
keID.audience.googledomains.com
.
Untuk melihat cara pengguna berinteraksi dengan target audiens, lihat Pengalaman pengguna untuk link berbagi kami.
Mengambil semua izin untuk file, folder, atau drive bersama
Gunakan metode permissions.list
untuk
mengambil semua izin untuk file, folder, atau drive bersama.
Tampilkan contoh
Contoh kode berikut menunjukkan cara mendapatkan semua izin. Respons akan menampilkan daftar izin.
Permintaan
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
Respons
{
"kind": "drive#permissionList",
"permissions": [
{
"id": "PERMISSION_ID
",
"type": "user",
"kind": "drive#permission",
"role": "commenter"
}
]
}
Memverifikasi izin pengguna
Saat aplikasi Anda membuka file, aplikasi harus memeriksa kemampuan file dan merender
UI untuk mencerminkan
izin akses pengguna saat ini. Misalnya, jika pengguna
tidak memiliki kemampuan canComment
pada file tersebut, kemampuan untuk memberi komentar
harus dinonaktifkan di UI.
Untuk mengetahui informasi selengkapnya tentang capabilities
, lihat Kemampuan
di atas.
Untuk memeriksa kemampuannya, panggil files.get
dengan
parameter fileId
dan fields
yang disetel ke kolom capabilities
. Sebagai
informasi lebih lanjut tentang menampilkan kolom menggunakan parameter fields
, lihat
Menampilkan kolom tertentu untuk file.
Tampilkan contoh
Contoh kode berikut menunjukkan cara memverifikasi izin pengguna. Respons akan menampilkan daftar kemampuan yang dimiliki pengguna pada file tersebut. Setiap kemampuan berhubungan dengan tindakan terperinci yang dapat dilakukan pengguna. Beberapa kolom hanya diisi untuk item di drive bersama.
Permintaan
GET https://www.googleapis.com/drive/v3/files/FILE_ID
?fields=capabilities
Respons
{ "capabilities": { "canAcceptOwnership": false, "canAddChildren": false, "canAddMyDriveParent": false, "canChangeCopyRequiresWriterPermission": true, "canChangeSecurityUpdateEnabled": false, "canComment": true, "canCopy": true, "canDelete": true, "canDownload": true, "canEdit": true, "canListChildren": false, "canModifyContent": true, "canModifyContentRestriction": true, "canModifyLabels": true, "canMoveChildrenWithinDrive": false, "canMoveItemOutOfDrive": true, "canMoveItemWithinDrive": true, "canReadLabels": true, "canReadRevisions": true, "canRemoveChildren": false, "canRemoveMyDriveParent": true, "canRename": true, "canShare": true, "canTrash": true, "canUntrash": true } }
Menentukan sumber peran untuk file drive bersama & folder
Untuk mengubah peran di file atau folder, Anda harus mengetahui sumber peran. Untuk drive bersama, sumber peran dapat didasarkan pada keanggotaan ke drive bersama {i>drive<i}, peran di folder, atau peran di file.
Untuk menentukan sumber peran di drive bersama, atau item di dalamnya
mengemudi, panggil permissions.get
dengan
parameter fileId
, permissionId
, dan fields
disetel ke
Kolom permissionDetails
. Untuk menemukan permissionId
, gunakan
permissions.list
dengan fileId
. Kepada
mengambil kolom permissionDetails
pada permintaan permissions.list
, menyetel atribut
fields
ke permissions/permissionDetails
.
Isian ini mencantumkan semua izin akses file yang diwariskan dan langsung untuk pengguna, grup, atau domain.
Tampilkan contoh
Contoh kode berikut menunjukkan cara menentukan sumber peran. Respons menampilkan permissionDetails
dari resource Permission
. Kolom inheritedFrom
memberikan ID item tempat izin diwarisi.
Permintaan
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
?fields=permissionDetails&supportsAllDrives=true
Respons
{
"permissionDetails": [
{
"permissionType": "member",
"role": "commenter",
"inheritedFrom": "INHERITED_FROM_ID
",
"inherited": true
},
{
"permissionType": "file",
"role": "writer",
"inherited": false
}
]
}
Ubah izin
Untuk mengubah izin pada file atau folder, Anda dapat mengubah peran yang ditetapkan:
Panggil
permissions.update
denganpermissionId
dari izin yang akan diubah danfileId
untuk file, folder, atau drive bersama terkait. Untuk menemukanpermissionId
, gunakanpermissions.list
denganfileId
.Dalam permintaan, identifikasi
role
baru.
Anda dapat memberikan izin pada setiap file atau folder di drive bersama, bahkan
jika pengguna atau grup sudah menjadi anggota. Misalnya, Alex memiliki role=commenter
sebagai bagian dari keanggotaan mereka ke sebuah drive bersama. Namun, aplikasi Anda dapat memberi Alex
role=writer
untuk file di drive bersama. Dalam hal ini, karena peran baru
lebih permisif daripada peran yang diberikan melalui keanggotaannya,
izin akses menjadi peran efektif untuk file atau folder tersebut.
Tampilkan contoh
Contoh kode berikut menunjukkan cara mengubah izin pada file atau folder dari pemberi komentar menjadi penulis. Respons menampilkan instance resource Permission
.
Permintaan
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
{ "requests": [ { "role": "writer" } ] }
Respons
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "writer"
}
Mencabut akses ke file atau folder
Untuk mencabut akses ke file atau folder, panggil
delete
dengan fileId
dan
permissionId
untuk menghapus izin.
Untuk item di "Drive Saya", Anda dapat menghapus turunan izin akses. Menghapus izin yang diwarisi akan mencabut akses ke item dan item turunan, jika ada.
Untuk item di drive bersama, izin yang diwariskan tidak dapat dicabut. Perbarui atau mencabut izin akses di file atau folder induk.
Operasi delete
juga digunakan untuk menghapus izin yang langsung diterapkan ke
file atau folder drive bersama.
Tampilkan contoh
Contoh kode berikut menunjukkan cara mencabut akses dengan menghapus permissionId
. Jika berhasil, isi respons akan kosong. Untuk mengonfirmasi bahwa izin dihapus, gunakan permissions.list
dengan fileId
.
Permintaan
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
Transfer kepemilikan file ke akun Google Workspace lain di organisasi yang sama
Kepemilikan file yang ada di "Drive Saya" dapat ditransfer dari satu akun Google Workspace ke akun lain di organisasi yang sama. Organisasi yang memiliki akun bersama {i>drive <i}memiliki file-file di dalamnya. Oleh karena itu, transfer kepemilikan tidak didukung untuk file dan folder di drive bersama. Pengelola drive bersama dapat memindahkan item dari drive bersama tersebut ke "Drive Saya" miliknya sendiri yang mana mentransfer kepemilikan kepada mereka.
Untuk mentransfer kepemilikan file di "Drive Saya", lakukan salah satu berikut ini:
Membuat izin file yang memberikan pengguna tertentu (
type=user
) akses pemilik (role=owner
).Perbarui izin file yang ada dengan
role=owner
, lalu transfer kepemilikan kepada pengguna yang ditentukan (transferOwnership=true
).
Mentransfer kepemilikan file dari satu akun konsumen ke akun konsumen lainnya
Kepemilikan file dapat ditransfer antara satu akun konsumen ke akun konsumen lainnya. Namun, Drive tidak mentransfer kepemilikan file antara dua konsumen akun sampai calon pemilik baru secara eksplisit menyetujui pengalihan tersebut. Untuk mentransfer kepemilikan file dari satu akun konsumen ke akun konsumen lainnya:
Pemilik saat ini memulai transfer kepemilikan dengan membuat atau memperbarui izin akses file calon pemilik baru. Izin akses harus mencakup setelan ini:
role=writer
,type=user
, danpendingOwner=true
. Jika pemilik baru membuat izin untuk calon pemilik, melalui email pemberitahuan dikirim kepada calon pemilik baru yang menunjukkan bahwa mereka diminta untuk mengasumsikan kepemilikan file tersebut.Pemilik baru menerima permintaan transfer kepemilikan dengan membuat atau memperbarui izin akses file mereka. Izin harus menyertakan setelan berikut:
role=owner
dantransferOwnership=true
. Jika pemilik baru membuat izin baru, notifikasi email akan dikirim ke pemilik sebelumnya yang menunjukkan bahwa kepemilikan telah ditransfer.
Saat file ditransfer, peran pemilik sebelumnya akan didowngrade menjadi writer
.
Mengubah beberapa izin dengan permintaan batch
Kami sangat menyarankan penggunaan permintaan batch untuk mengubah beberapa izin akses.
Berikut ini adalah contoh cara melakukan modifikasi izin batch dengan library klien.