Belirli bir etiket veya alan değeri olan dosyaları arayın

Bu sayfada, belirli bir etiket veya alan değeri uygulanmış dosyaların nasıl aranacağı açıklanmaktadır.

Etiket alanı türleri

Google Drive etiket alanları, farklı dizine ekleme ve arama anlamlarını destekleyen her tür için güç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

1. Etiket veya alan varlığına göre arama yapın

Belirli bir etiketin uygulandığı (veya uygulanmadığı) öğeleri arayabilirsiniz:

  • 'labels/contract' in labels
  • not 'labels/contract' in labels

Ayrıca, belirli bir alanın ayarlandığı (veya ayarlanmamış) olduğu öğ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 "hello" 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'
yürütme_tarihi belirli bir tarihten önce olan dosyalar labels/contract.execution_date < '2020-06-22'
value_usd (tam sayı) değerinin belirli bir değerden küçük olduğu dosyalar labels/contract.value_usd < 2000
client_contact'ın belirli bir e-posta adresi olarak ayarlandığı dosyalar labels/contract.client_contact = 'alex@altostrat.com'

3. Birden çok değerli alanlara sahip alanlara göre arama yapın (ListOptions.max_entries > 1 gibi)

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 özelliğinin nasıl kullanılacağı gösterilmektedir. Ayrıca files.list yöntemini kullanır. İsteğin gövdesi boş olmalıdır.

Yanıta labelInfo öğesini dahil etmek istiyorsanız aşağıdakileri de belirtmeniz gerekir:

  • includeLabels kullanabilirsiniz.

  • fields parametresindeki labelInfo, labelInfo öğesinin includeLabels içinde döndürülmesini istediğinizi belirtir.

Başarılı olursa yanıt gövdesi, dosya 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: Döndürülecek etiketin ilk labelId değeri.
  • LABEL_2_ID: Döndürülecek etiketin ikinci labelId öğesi.