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

Vault API cho phép bạn quản lý các tệp xuất từ Vault. Bạn có thể:

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

    Lưu ý: Bạn không được có quá 20 lượt xuất đang diễn ra trong tổ chức của mình. Để 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 nhỏ hơn. Ví dụ: hãy chia dữ liệu xuất theo tháng thay vì xuất tất cả dữ liệu 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ụ:

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

  • Tải tệp xuất – truy xuất thông tin về tệp xuất.

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

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

Trước khi bắt đầu

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

Để xử lý các tài nguyên trong 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à người 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 từ Gmail

Ví dụ sau đây cho thấy cách tạo tệp xuất từ Gmail. Yêu cầu này sẽ 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 được gửi đến ceo@solarmora.com.

Lưu ý: Các ví dụ này sử dụng hệ thống xuất 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 từ Drive

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

  • thuộc đơn vị tổ chức đã chỉ định (thu được bằng SDK quản trị).
  • đượ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 từ Meet

Ví dụ sau đây cho thấy cách tạo tệp xuất của Meet. Yêu cầu này sẽ xuất các 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 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ừ một truy vấn đã lưu

Ví dụ sau đây cho biết cách tạo 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()

Xuất danh sách

Ví dụ sau đây cho biết cách truy xuất danh sách các tệp xuất 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 lượt xuất cụ thể. Lưu ý: Để tải tệp và thông báo đã xuất xuống, bạn 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 tệp xuất xuống từ Google Cloud

Ví dụ sau đây cho biết cách tải tất cả tệp 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 API Vault và Cloud.

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

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 cho biết 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 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.