Bu sayfada, belirli bir etiket veya alan değeri uygulanmış olan dosyaların nasıl aranacağı açıklanmaktadır.
Etiket alanı türleri
Google Drive etiket alanları, her tür, farklı dizine ekleme ve arama anlamlarını destekleyecek şekilde ayrıntılı bir şekilde yazılır. Aşağıdaki tabloda kullanılabilir veri türleri gösterilmektedir.
Tür | Etiket türü seçenekleri | Desteklenen arama operatörleri |
---|---|---|
Metin | TextOptions | is null, is not null, =, contains, starts with |
Uzun Metin | LongTextOptions | is null, is not null, contains |
Tamsayı | IntegerOptions | is null, is not null, =, !=, <, >, <=, >= |
Tarih | DateOptions | is null, is not null, =, !=, <, >, <=, >= |
Seçim | SelectionOptions | is null, is not null, =, != |
Kullanıcı | UserOptions | is null, is not null, =, != |
Seçim Listesi | Seçim Seçenekleri (max_entries > 1 ile) | is null, is not null, in, not in |
Kullanıcı Listesi | UserOptions (max_entries > 1 ile) | is null, is not null, in, not in |
Arama örnekleri
1. Bir etiketin veya alanın varlığına göre arama yapma
Belirli bir etiketin uygulandığı (veya uygulanmadığı) öğeleri arayabilirsiniz:
'labels/contract' in labels
not 'labels/contract' in labels
Belirli bir alanın ayarlandığı (veya ayarlanmadığı) öğeleri de arayabilirsiniz:
labels/contract.comment IS NOT NULL
labels/contract.comment IS NULL
2. Tek değerli alanlara göre arama yapın
Beklenen alan değerleriyle eşleşecek arama sorguları yazabilirsiniz. Aşağıdaki tabloda geçerli alan sorguları gösterilmektedir:
Sorgulamak istediğiniz şey | Sorgu dizesi |
---|---|
Yorumun "merhaba" olarak ayarlandığı öğeler | labels/contract.comment = 'hello' |
Yorumun "merhaba" ile başladığı dosyalar | labels/contract.comment STARTS WITH 'hello' |
Durumun yürütüldüğü dosyalar | labels/contract.status = 'executed' |
Durumun yürütülmediği dosyalar | labels/contract.status != 'executed' |
management_date değerinin belirli bir tarihten önce olduğu dosyalar | labels/contract.execution_date < '2020-06-22' |
value_usd (tamsayı) değerinin belirli bir değerden küçük olduğu dosyalar | labels/contract.value_usd < 2000 |
client_contact'ın belirli bir e-posta adresine ayarlandığı dosyalar | labels/contract.client_contact = 'alex@altostrat.com' |
3. Birden çok değerli alanlara sahip alanlara göre arama yapın (ör. ListOptions.max_entries > 1)
Birden çok değeri destekleyen alanlar yalnızca IN operatörü kullanılarak sorgulanabilir:
'EMAIL_ADDRESS' IN labels/project.project_leads
NOT 'EMAIL_ADDRESS' IN labels/project.project_leads
Örnek
Aşağıdaki kod örneğinde, bir Drive dosya kaynağından belirli bir etikete veya alan değerine sahip tüm dosyaları listelemek için bir veya daha fazla labelId
öğesinin nasıl kullanılacağı gösterilmektedir. Ayrıca files.list
yöntemini de kullanır. İstek gövdesi boş olmalıdır.
Yanıta labelInfo
kelimesini eklemek isterseniz şunu da belirtmeniz gerekir:
Kimliklerin virgülle ayrılmış listesi olarak
includeLabels
kullanılabilir.labelInfo
öğesininincludeLabels
içinde döndürülmesini istediğinizi belirtmek içinfields
parametresindelabelInfo
.
Başarılı olursa Yanıt gövdesi, dosyaların listesini içerir.
Java
List<File> fileList = driveService.files().list().setIncludeLabels("LABEL_1_ID,LABEL_2_ID").setFields("items(labelInfo, id)").setQ("'labels/LABEL_1_ID' in labels and 'labels/LABEL_2_ID' in labels").execute().getItems();
Python
file_list = drive_service.files().list(includeLabels="LABEL_1_ID,LABEL_2_ID", q="'labels/LABEL_1_ID' in labels and 'labels/LABEL_2_ID' in labels", fields="items(labelInfo, id)").execute();
Node.js
/**
* Search for Drive files with specific labels
* @return{obj} file list with labelInfo
**/
async function searchForFileWithLabels() {
// 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 fileList = await service.files.list({
includeLabels: 'LABEL_1_ID,LABEL_2_ID',
q: '\'labels/LABEL_1_ID\' in labels and \'labels/LABEL_2_ID\' in labels',
fields:'files(labelInfo, id)',
});
return file;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
Aşağıdakini değiştirin:
- LABEL_1_ID: Etiketin döndürülecek ilk
labelId
değeri. - LABEL_2_ID: Etiketin döndürülecek ikinci
labelId
'ı.