Google Drive API, dosyalarda değişiklik yapılmasını önlemek için aşağıdakiler de dahil olmak üzere çeşitli yöntemleri destekler: dosya içeriğini kısıtlamayı ve bu tür içerikleri indirme, yazdırma veya kopyalama seçeneklerini yasaklama dosyalar.
Drive içerik kısıtlamalarıyla dosyaları salt okunur yapma
Kullanıcıların şunları yapmasını engellemek için Google Drive dosyasına bir içerik kısıtlaması ekleyebilirsiniz: şunları yapabilirsiniz:
- Başlığı değiştirme
- İçerik düzenlemeleri yapma
- Düzeltme yükleme
- Yorum ekleme veya değiştirme
İçerik kısıtlamaları uygulamak, bir içeriğin içeriğine izin veren bir mekanizmadır. Drive öğesinin, öğenin ayarı değiştirilmeden salt okunur hale getirilmesi için erişim izinlerine tabidir. Bu da iletişimin erişim kısıtlaması değil. Kullanıcılar dosyanın içeriğini değiştiremez ancak diğer kullanıcılar işlemlere yine de erişim düzeyine bağlı olarak izin verilir (örneğin, düzenleme erişimi, öğeyi taşımaya veya paylaşım ayarlarını değiştirmeye devam edebilir).
Drive'daki bir dosyaya içerik kısıtlaması eklemek veya dosyayı kaldırmak için kullanıcının,
ile ilişkili
izinlerini inceleyin. Şuradaki bir dosya veya klasör için:
Drive'ım veya
capabilities.canModifyEditorContentRestriction
, role=writer
olması gerekir
atanır. Drive'ım bölümündeki bir dosya veya klasör veya
ownerRestricted
içerik kısıtlaması varsa dosyanın sahibi
role=organizer
. İçerik kısıtlaması olan bir öğeyi görüntüleyebilmek için kullanıcıların
role=reader
veya üzeri. Rollerin tam listesi için şuraya bakın: Roller ve
izinleriyle ilgili daha fazla bilgi edinin. Bir dosyadaki izinleri değiştirmek için şuraya bakın:
İzinleri değiştirebilirsiniz.
contentRestrictions.readOnly
boole alanını
Ayarlanacak files
kaynak
olabilir. Bir öğe için içerik kısıtlaması ayarladığınızda,
üzerine yazar.
İçerik kısıtlamaları senaryoları
Bir Drive öğesiyle ilgili içerik kısıtlaması, kullanıcılara hiçbir değişiklik yapılmamalıdır. Bunun nedeni aşağıdakilerden biri olabilir:
- İnceleme veya denetleme dönemlerinde ortak çalışmaya dayalı bir doküman üzerindeki çalışmayı duraklatma.
- Bir öğeyi, onaylandı gibi, kesinleşmiş bir duruma ayarlama.
- Hassas toplantılarda değişiklik yapılmasını önleme.
- Otomatik sistemler tarafından yönetilen iş akışları için harici değişiklik yapılması yasaktır.
- Google Apps Komut Dosyası ve Google Workspace Eklentileri tarafından yapılan düzenlemeleri kısıtlama.
- Dokümanda yanlışlıkla yapılan düzenlemelerden kaçınma.
İçerik kısıtlamaları içeriğin yönetilmesine yardımcı olsa da yeterli izinlere sahip kullanıcıların bir uygulama üzerinde çalışmaya devam etmesini önlemek için öğe. Ayrıca, sabit kayıt oluşturamazsınız. Drive içerik kısıtlamaları değişebilir, bu nedenle içerik kısıtlaması o öğenin hiçbir zaman değişmeyeceğini garanti etmez.
İçerik kısıtlamaları olan dosyaları yönetme
diğer tüm dosyaların yanı sıra Google Dokümanlar, Google E-Tablolar ve Google Slaytlar içerik kısıtlamaları içerebilir.
Bir öğe üzerindeki içerik kısıtlaması, başlığının ve içeriğinin değiştirilmesini şunları içerir:
- Yorumlar ve öneriler (Dokümanlar, E-Tablolar ve Slaytlar ve ikili program dosyaları)
- İkili dosya düzeltmeleri
- Dokümanlar'da metin ve biçimlendirme
- E-Tablolar'da, bir E-Tablolar düzeninde, E-Tablolar'da
- Slaytlar'daki tüm içeriğin yanı sıra slaytlar
Bazı dosya türlerinde içerik kısıtlaması bulunamaz. Aşağıda birkaç örnek verilmiştir:
- Google Forms
- Google Sites
- Google Çizimler
- Kısayollar ve üçüncü taraf kısayolları. Daha fazla bilgi için depoladığınız içeriğe kısayol dosyası ve bir kısayol oluşturun Drive dosyası.
İçerik kısıtlaması ekleme
Dosya içeriği kısıtlaması eklemek için
files.update
yöntemini kullanarak
contentRestrictions.readOnly
alanı true
olarak ayarlandı. Şunun için isteğe bağlı bir reason
ekleyin:
"Kesinleşmiş sözleşme" gibi, neden kısıtlama eklediğinizi belirtin. Aşağıdakiler
kod örneği, içerik kısıtlamasının nasıl ekleneceğini gösterir:
Java
File updatedFile =
new File()
.setContentRestrictions(
ImmutableList.of(new ContentRestriction().setReadOnly(true).setReason("Finalized contract."));
File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();
Python
content_restriction = {'readOnly': True, 'reason':'Finalized contract.'}
response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();
Node.js
/**
* Set a content restriction on a file.
* @return{obj} updated file
**/
async function addContentRestriction() {
// 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 contentRestriction = {
'readOnly': True,
'reason': 'Finalized contract.',
};
const updatedFile = {
'contentRestrictions': [contentRestriction],
};
try {
const response = await service.files.update({
fileId: 'FILE_ID',
resource: updatedFile,
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
FILE_ID kısmını, elde etmek istediğiniz dosyanın fileId
değeriyle değiştirin
değiştirebilirsiniz.
Örnek kodu çalıştırdığınızda, dosyada içerik kısıtlanmıştır ve dosya, kilit simgesi dosya adının yanında (Google Drive kullanıcı arayüzü (kullanıcı arayüzü). İlgili içeriği oluşturmak için kullanılan dosyası artık salt okunur.
) görünürİçerik kısıtlamasını kaldırma
Bir dosya içeriği kısıtlamasını kaldırmak için files.update
yöntemini
contentRestrictions.readOnly
alanı false
olarak ayarlandı. Aşağıdaki kod örneği
içerik kısıtlamasının nasıl kaldırılacağını gösterir:
Java
File updatedFile =
new File()
.setContentRestrictions(
ImmutableList.of(new ContentRestriction().setReadOnly(false));
File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();
Python
content_restriction = {'readOnly': False}
response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();
Node.js
/**
* Remove a content restriction on a file.
* @return{obj} updated file
**/
async function removeContentRestriction() {
// 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 contentRestriction = {
'readOnly': False,
};
const updatedFile = {
'contentRestrictions': [contentRestriction],
};
try {
const response = await service.files.update({
fileId: 'FILE_ID',
resource: updatedFile,
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
FILE_ID kısmını, elde etmek istediğiniz dosyanın fileId
değeriyle değiştirin
değiştirebilirsiniz.
Örnek kodu çalıştırdığınızda dosyada içerik kısıtlaması kaldırılır.
Ayrıca, Drive kullanıcı arayüzünü kullanarak bir içerik kısıtlamasını kaldırabilir ve içerik düzenlemeye izin verme (doğru izinlere sahip olmanız koşuluyla). İki tür şu seçenekleri kullanabilirsiniz:
Drive'da, içerik kısıtlaması olan dosyayı sağ tıklayın ve
'nı inceleyin. kilidini aç'ı tıklayın.İçerik kısıtlaması olan dosyayı açıp (Kilitli mod) simgesini tıklayın. > Dosyanın kilidini açın.
'nı inceleyin.
İçerik kısıtlaması olup olmadığını kontrol etme
İçerik kısıtlaması olup olmadığını kontrol etmek için
files.get
yöntemini kullanarak
contentRestrictions
alan döndürüldü. Aşağıdaki kod örneğinde, Google Etiket Yöneticisi'nin
içerik kısıtlamasının durumunu kontrol etmek için:
Java
File response = driveService.files().get("FILE_ID").setFields("contentRestrictions").execute();
Python
response = drive_service.files().get(fileId="FILE_ID", fields = "contentRestrictions").execute();
Node.js
/**
* Get content restrictions on a file.
* @return{obj} updated file
**/
async function fetchContentRestrictions() {
// 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.get({
fileId: 'FILE_ID',
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
FILE_ID kısmını, elde etmek istediğiniz dosyanın fileId
değeriyle değiştirin
onay kutusunu işaretleyin.
Örnek kodu çalıştırdığınızda yöntem bir
ContentRestriction
bir kaynak olabilir.
Yalnızca dosya sahibinin değiştirebileceği içerik kısıtlaması ekleme
Yalnızca dosya sahiplerinin mekanizmayı değiştirebileceği bir dosya içeriği kısıtlaması eklemek
files.update
yöntemini
contentRestrictions.ownerRestricted
boole alanı true
olarak ayarlandı. İlgili içeriği oluşturmak için kullanılan
Aşağıdaki kod örneğinde, dosya sahipleri için içerik kısıtlamasının nasıl ekleneceği gösterilmektedir
yalnızca:
Java
File updatedFile =
new File()
.setContentRestrictions(
ImmutableList.of(new ContentRestriction().setReadOnly(true).setOwnerRestricted(true).setReason("Finalized contract."));
File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();
Python
content_restriction = {'readOnly': True, 'ownerRestricted': True, 'reason':'Finalized contract.'}
response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();
Node.js
/**
* Set an owner restricted content restriction on a file.
* @return{obj} updated file
**/
async function addOwnerRestrictedContentRestriction() {
// 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 contentRestriction = {
'readOnly': True,
'ownerRestricted': True,
'reason': 'Finalized contract.',
};
const updatedFile = {
'contentRestrictions': [contentRestriction],
};
try {
const response = await service.files.update({
fileId: 'FILE_ID',
resource: updatedFile,
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
FILE_ID kısmını, elde etmek istediğiniz dosyanın fileId
değeriyle değiştirin
değiştirebilirsiniz.
Örnek kodu çalıştırdığınızda dosyanın içeriği kısıtlanır ve yalnızca dosya sahipleri tarafından kaldırılabilir. Dosyanın sahibiyseniz içindeki dosya adının yanında etkin bir kilit simgesi (. Eğer sahibi siz değilseniz kilit simgesi soluklaşır. ) görünür Drive kullanıcı arayüzü (kullanıcı arayüzü)
ownerRestricted
işaretini kaldırmak için files.update
yöntemini
contentRestrictions.ownerRestricted
alanı false
olarak ayarlandı.
İçerik kısıtlama özellikleri
files
kaynağı,
bir işlemin gerçekleşip gerçekleşmeyeceğini belirtmek için kullanılan boole capabilities
alanlarının koleksiyonu
dosya üzerinde de gerçekleştirilebilir.
İçerik kısıtlamaları şu capabilities
unsurlarını kapsar:
capabilities.canModifyEditorContentRestriction
: Geçerli kullanıcının içerik kısıtlaması ekleyebilir veya mevcut kısıtlamayı değiştirebilirsiniz.capabilities.canModifyOwnerContentRestriction
: Geçerli kullanıcının sahip içerik kısıtlaması ekleyebilir veya mevcut kısıtlamayı değiştirebilirsiniz.capabilities.canRemoveContentRestriction
: Geçerli kullanıcının Varsa uygulanan içerik kısıtlamasını kaldırın.
Daha fazla bilgi için bkz. Özellikler.
capabilities
dosyasının alınmasına ilişkin bir örnek için Kullanıcıyı doğrulama bölümüne bakın
izin isteyin.
Kullanıcıların dosyanızı indirmesini, yazdırmasını veya kopyalamasını engelleme
role=commenter
veya role=reader
izinlerine sahip kullanıcıların şu işlemleri gerçekleştirmesini sınırlayabilirsiniz:
Drive'da dosya indirme, yazdırma ve kopyalama,
Dokümanlar, E-Tablolar ve Slaytlar.
Dosya indirme, yazdırma ve kopyalama seçeneklerini kaldırmak için
files.update
yöntemini kullanarak
copyRequiresWriterPermission
boole alanı true
olarak ayarlandı.