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

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

  • Tạo tệp xuất – gửi yêu cầu đến Vault để tìm những thư hoặc tệp phù hợp với cụm từ tìm kiếm của bạn và xuất chúng sang Google Cloud.

    Lưu ý: Tổ chức của bạn chỉ được có tối đa 20 yêu cầu xuất đang diễn ra. Để cải thiện hiệu suất, hãy chia các tệp xuất lớn thành các tập dữ liệu nhỏ hơn. Ví dụ: chia 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 lần xuất.

    Ví dụ:

  • Xuất danh sách – truy xuất trạng thái của tất cả dữ liệu xuất liên quan đến một vấn đề.

  • Nhận tệp xuất – truy xuất thông tin về một tệp xuất.

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

  • Xoá dữ liệu xuất – xoá dữ liệu xuất khỏi một vụ việc khi không cần đến nữa.

Trước khi bắt đầu

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

Để sử dụng các tài nguyên của Vault, tài khoản phải có các đặc quyền bắt buộc đối với Vault và quyền truy cập vào vấn đề. Để truy cập vào một vấn đề, tài khoản phải là tài khoản đã tạo vấn đề đó, được chia sẻ vấn đề đó 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 cho thấy cách tạo một tệp xuất dữ liệu Gmail. Yêu cầu này xuất tất cả tin nhắn trên Gmail và Hangouts phiên bản cũ đáp ứng các tiêu chí sau:

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

Lưu ý: Các 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 mới, trong MailExportOptions, hãy đặ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 xuất trên Drive

Ví dụ sau đây cho thấy cách tạo một tệp xuất trên Drive. Yêu cầu này xuất tất cả các tệp (kể cả 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 bằng Admin SDK).
  • được tạo trong khoảng thời gian đã chỉ định.

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 dữ liệu Meet

Ví dụ sau đây minh hoạ cách tạo một bản xuất dữ liệu Meet. Yêu cầu này xuất các tệp được liên kết với tài khoản trong đơn vị tổ chức được chỉ định có tên tệp tuân theo mẫu cho bản ghi 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ừ truy vấn đã lưu

Ví dụ sau đây cho thấy cách tạo một tệp xuất 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 dữ liệu xuất

Ví dụ sau đây cho biết cách truy xuất danh sách 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ề một tệp xuất

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

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 dữ liệu xuất xuống từ Google Cloud

Ví dụ sau đây cho thấy cách tải tất cả dữ liệu đã xuất hoàn tất trong một vấn đề xuống từ Google Cloud. Yêu cầu này sử dụng Vault và Cloud API.

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

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 xuất

Ví dụ sau đây minh hoạ 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 cụ thể về tính năng tìm kiếm và xuất cho từng ứng dụng, bao gồm cả giới hạn 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.