Quản lý các tệp xuất ra

Google Vault API cho phép bạn quản lý các tệp dữ liệu xuất của Vault. Bạn có thể:

  • Tạo tệp xuất – gửi yêu cầu tới Vault để tìm các thư hoặc tệp khớp với truy vấn của bạn và xuất chúng sang Google Cloud.

    Lưu ý: Bạn không thể xuất quá 20 tệp đang tiến hành trong tổ chức của mình. Để cải thiện hiệu suất, hãy chia nhỏ các tệp xuất lớn thành các tập nhỏ hơn. Ví dụ: hãy chia nhỏ tệp xuất theo tháng thay vì xuất tất cả cùng một lúc. Một ví dụ khác là đưa ít thực thể hơn (chẳng hạn như người dùng và các thực thể đặc biệt như nhóm, không gian trò chuyện, v.v.) vào mỗi tệp xuất.

    Ví dụ:

  • Xuất danh sách – truy xuất trạng thái của tất cả các tệp xuất được liên kết về một vấn đề.

  • Get Export (Tải dữ liệu xuất) – truy xuất thông tin về dữ liệu được xuất.

  • Tải tệp xuất xuống – tải tệp xuất từ Google Cloud xuống.

  • Xoá các tệp xuất – xoá các tệp xuất khỏi một vấn đề khi không còn cần thiết nữa.

Trước khi bắt đầu

Để thiết lập thư viện và phương thức xác thực cần thiết, hãy làm theo hướng dẫn bắt đầu nhanh cho ngôn ngữ lập trình của bạn.

Để làm việc với các tài nguyên của Vault, tài khoản phải có Vault bắt buộc đặc quyền và quyền truy cập vào rất quan trọng. Để truy cập một vấn đề, tài khoản phải là người tạo vấn đề, có vấn đề được chia sẻ với họ hoặc có đặc quyền Xem tất cả vấn đề.

Tạo tệp xuất dữ liệu Gmail

Ví dụ sau đây trình bày cách xuất dữ liệu Gmail. Yêu cầu này xuất tất cả tin nhắn trong Gmail và Hangouts phiên bản cũ đáp ứng các tiêu chí sau:

  • thư thuộc sở hữu của tài khoản email1email2.
  • không bao gồm thư nháp.
  • thư đã gửi tới ceo@solarmora.com.

Lưu ý: Những ví dụ này sử dụng hệ thống xuất dữ liệu của Gmail phiên bản cũ. Để xuất bằng hệ thống xuất dữ liệu mới, trong MailExportOptions, đặt useNewExport thành true.

Java

public Export createMailAccountHeldDataExports(Vault client, String matterId) {
  AccountInfo emailsToSearch = new AccountInfo().setEmails(ImmutableList.of("email1", "email2"));
  MailOptions mailQueryOptions = new MailOptions().setExportFormat("PST");
  String queryTerms = "to:ceo@solarmora.com";
  Query mailQuery =
      new Query()
          .setCorpus("MAIL")
          .setDataScope("HELD_DATA")
          .setSearchMethod("ACCOUNT")
          .setAccountInfo(emailsToSearch)
          .setTerms(queryTerms)
          .setMailOptions(mailQueryOptions);
  MailExportOptions mailExportOptions =
      new MailExportOptions()
          .setExportFormat("MBOX")
          .showConfidentialModeContent(true);
  Export wantedExport =
      new Export()
          .setMatterId(matterId)
          .setName("My first mail accounts export")
          .setQuery(mailQuery)
          .setExportOptions(new ExportOptions().setMailOptions(mailExportOptions));
  return client.matters().exports().create(matter, wantedExport).execute();
}

Python

def create_mail_account_held_data_export(service, matter_id):
  emails_to_search = ['email1', 'email2']
  mail_query_options = {'excludeDrafts': True}
  query_terms = 'to:ceo@solarmora.com'
  mail_query = {
      'corpus': 'MAIL',
      'dataScope': 'HELD_DATA',
      'searchMethod': 'ACCOUNT',
      'accountInfo': {
          'emails': emails_to_search
      },
      'terms': query_terms,
      'mailOptions': mail_query_options,
  }
  mail_export_options = {
      'exportFormat': 'MBOX',
      'showConfidentialModeContent': True
      }
  wanted_export = {
      'name': 'My first mail accounts export',
      'query': mail_query,
      'exportOptions': {
          'mailOptions': mail_export_options
  }
}
return service.matters().exports().create(
  matterId=matter_id, body=wanted_export).execute()

Tạo tệp dữ liệu xuất trên Drive

Ví dụ sau đây trình bày cách tạo tệp xuất trên Drive. Yêu cầu này xuất tất cả các tệp, bao gồm cả những tệp trong bộ nhớ dùng chung, đáp ứng các tiêu chí sau:

  • thuộc về đơn vị tổ chức được chỉ định (nhận được từ SDK dành cho quản trị viên).
  • trong khoảng thời gian lần.

Java

public Export createDriveOuAllDataExport(Vault client, String matterId) {
  OrgUnitInfo ouToSearch = new OrgUnitInfo().setOrgUnitId("ou id retrieved from admin sdk");
  DriveOptions driveQueryOptions = new DriveOptions().setIncludeSharedDrives(true);
  Query driveQuery =
      new Query()
          .setCorpus("DRIVE")
          .setDataScope("ALL_DATA")
          .setSearchMethod("ORG_UNIT")
          .setOrgUnitInfo(ouToSearch)
          .setDriveOptions(driveQueryOptions)
          .setStartTime("2017-03-16T00:00:00Z")
          .setEndTime("2017-03-16T00:00:00Z")
          .setTimeZone("Etc/GMT+2");
  DriveExportOptions driveExportOptions = new DriveExportOptions().setIncludeAccessInfo(false);
  Export wantedExport =
      new Export()
          .setName("My first drive ou export")
          .setQuery(driveQuery)
          .setExportOptions(new ExportOptions().setDriveOptions(driveExportOptions));
  return client.matters().exports().create(matter, wantedExport).execute();
}

Python

def create_drive_ou_all_data_export(service, matter_id):
  ou_to_search = 'ou id retrieved from admin sdk'
  drive_query_options = {'includeSharedDrives': True}
  drive_query = {
    'corpus': 'DRIVE',
    'dataScope': 'ALL_DATA',
    'searchMethod': 'ORG_UNIT',
    'orgUnitInfo': {
        'org_unit_id': ou_to_search
    },
    'driveOptions': drive_query_options,
    'startTime': '2017-03-16T00:00:00Z',
    'endTime': '2017-09-23T00:00:00Z',
    'timeZone': 'Etc/GMT+2'
  }
  drive_export_options = {'includeAccessInfo': False}
  wanted_export = {
    'name': 'My first drive ou export',
    'query': drive_query,
    'exportOptions': {
        'driveOptions': drive_export_options
    }
  }
return service.matters().exports().create(
  matterId=matter_id, body=wanted_export).execute()

Tạo tệp xuất sang Meet

Ví dụ sau đây trình bày cách xuất dữ liệu sang Meet. Yêu cầu này xuất tệp được liên kết với các tài khoản trong đơn vị tổ chức được chỉ định có tên tệp tuân theo mẫu dành cho bản ghi trên Meet.

Python

def create_meet_export(service, matter_id, ou_to_search, export_name):
  export = {
    'name': export_name,
    'query': {
        'corpus': 'DRIVE',
        'dataScope': 'ALL_DATA',
        'searchMethod': 'ORG_UNIT',
        'terms': 'title:"...-...-... \\(....-..-.. at ..:.. *\\)"',
        'orgUnitInfo': {
            'orgUnitId': 'id:'+ou_to_search
        },
        'driveOptions': {
            'includeTeamDrives': True,
            'includeSharedDrives': True
        },
        'timeZone': 'Etc/GMT',
        'method': 'ORG_UNIT'
    },
    'exportOptions': {
        'driveOptions': {},
        'region': 'ANY'
    },
  }

  return service.matters().exports().create(
    matterId=matter_id, body=export).execute()

Xuất từ một truy vấn đã lưu

Ví dụ sau đây cho thấy cách xuất dữ liệu từ một truy vấn đã lưu.

Python

def create_mail_export_from_saved_query(service, matter_id, saved_query_id, export_name):
  export = {
    'name': export_name,
    'exportOptions': {
      'mailOptions': {
        'exportFormat': 'PST',
        'showConfidentialModeContent': True
      },
    'region': 'ANY'
    }
  }

  export['query'] = service.matters().savedQueries().get(
    savedQueryId=saved_query_id, matterId=matter_id).execute()['query']
  return service.matters().exports().create(
    matterId=matter_id, body=export).execute()

Liệt kê tệp xuất

Ví dụ sau đây trình bày cách truy xuất danh sách tệp dữ liệu xuất được liên kết với một vấn đề.

Java

public class exports {
  public ListExportsResponse listExports(Vault client, String matterId) {
    return client.matters().exports().list(matterId).execute();
}

Python

def list_exports(service, matter_id):
 return service.matters().exports().list(matterId=matter_id).execute()

Xem thông tin về dữ liệu xuất

Ví dụ sau đây trình bày cách lấy thông tin về một tệp xuất cụ thể. Lưu ý: Để tải tệp và thư đã xuất xuống, bạn sử dụng Cloud API (trong ví dụ).

Java

public Export getExportById(Vault client, String matterId, String exportId) {
  return client.matters().exports().get(matterId, exportId).execute();
}

Python

def get_export_by_id(service, matter_id, export_id):
  return service.matters().exports().get(
    matterId=matter_id, exportId=export_id).execute()

Tải tệp dữ liệu xuất xuống từ Google Cloud

Ví dụ sau đây trình bày cách tải tất cả tệp xuất đã hoàn tất của một vấn đề xuống từ Google Cloud. Yêu cầu này sử dụng API Google Vault và API Google Cloud.

Lưu ý: Để tải tệp xuất xuống, tài khoản cần có Quản lý đặc quyền Xuất và vấn đề được chia sẻ với họ.

Python

def download_exports(service, matter_id):
"""Google Cloud storage service is authenticated by running
`gcloud auth application-default login` and expects a billing enabled project
in ENV variable `GOOGLE_CLOUD_PROJECT` """
gcpClient = storage.Client()
matter_id = os.environ['MATTERID']
  for export in vaultService.matters().exports().list(
      matterId=matter_id).execute()['exports']:
    if 'cloudStorageSink' in export:
      directory = export['name']
      if not os.path.exists(directory):
        os.makedirs(directory)
      print(export['id'])
      for sinkFile in export['cloudStorageSink']['files']:
        filename = '%s/%s' % (directory, sinkFile['objectName'].split('/')[-1])
        objectURI = 'gs://%s/%s' % (sinkFile['bucketName'],
                                    sinkFile['objectName'])
        print('get %s to %s' % (objectURI, filename))
        gcpClient.download_blob_to_file(objectURI, open(filename, 'wb+'))

Xoá tệp dữ liệu xuất

Ví dụ sau đây trình bày cách xoá một tệp xuất.

Java

public void deleteExportById(Vault client, String matterId, String exportId) {
   client.matters().exports().delete(matterId, exportId).execute();

Python

def delete_export_by_id(service, matter_id, export_id):
  return service.matters().exports().delete(
    matterId=matter_id, exportId=export_id).execute()

Để biết thông tin dành riêng cho ứng dụng về tính năng tìm kiếm và xuất (bao gồm cả giới hạn về số lượt tìm kiếm), hãy xem bài viết Bắt đầu sử dụng tính năng tìm kiếm và xuất của Vault.