Exporte verwalten

Mit der Vault API können Sie Vault-Exporte verwalten. Sie haben folgende Möglichkeiten:

  • Exporte erstellen: Sie senden eine Anfrage an Vault, um die Nachrichten oder Dateien zu finden, die Ihrer Suchanfrage entsprechen, und exportieren sie nach Google Cloud.

    Hinweis:Sie können innerhalb Ihrer Organisation maximal 20 Exporte gleichzeitig ausführen. Um die Leistung zu verbessern, sollten Sie große Exporte in kleinere Sets aufteilen. Sie können den Export beispielsweise nach Monat aufteilen, anstatt alles auf einmal zu exportieren. Ein weiteres Beispiel ist die Aufnahme weniger Entitäten (z. B. Nutzer und spezielle Entitäten wie Gruppen, Chatbereiche usw.) in jeden Export.

    Beispiele:

  • Exporte auflisten: Hier können Sie den Status aller Exporte abrufen, die mit einer Anfrage verknüpft sind.

  • Exporte abrufen: Hiermit können Sie Informationen zu einem Export abrufen.

  • Exporte herunterladen: Sie können einen Export aus Google Cloud herunterladen.

  • Exporte löschen: Sie können Exporte aus einer Angelegenheit entfernen, wenn sie nicht mehr benötigt werden.

Hinweis

Folgen Sie der Kurzanleitung für Ihre Programmiersprache, um die erforderlichen Bibliotheken und die Authentifizierung einzurichten.

Damit das Konto mit Vault-Ressourcen arbeiten kann, muss es die erforderlichen Vault-Berechtigungen haben und Zugriff auf die Angelegenheit haben. Damit ein Konto auf eine Rechtsangelegenheit zugreifen kann, muss es die Rechtsangelegenheit erstellt oder die Freigabe erhalten haben oder die Berechtigung Alle Rechtsangelegenheiten abrufen haben.

Gmail-Export erstellen

Im folgenden Beispiel wird gezeigt, wie ein Gmail-Export erstellt wird. Mit dieser Anfrage werden alle Gmail- und klassischen Hangouts-Nachrichten exportiert, die die folgenden Kriterien erfüllen:

  • Nachrichten, die den Konten email1 und email2 gehören.
  • Nachrichtenentwürfe werden nicht berücksichtigt.
  • Nachrichten, die an ceo@solarmora.com gesendet werden.

Tipp:In diesen Beispielen wird das klassische Gmail-Exportsystem verwendet. Wenn Sie mit dem neuen Exportsystem exportieren möchten, setzen Sie in MailExportOptions useNewExport auf „wahr“.

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()

Google Drive-Export erstellen

Im folgenden Beispiel wird gezeigt, wie ein Drive-Export erstellt wird. Bei dieser Anfrage werden alle Dateien exportiert, einschließlich derjenigen in geteilten Ablagen, die die folgenden Kriterien erfüllen:

  • zur angegebenen Organisationseinheit gehören (die mit dem Admin SDK abgerufen wurde).
  • zwischen den angegebenen Zeiten erstellt wurden.

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()

Meet-Export erstellen

Im folgenden Beispiel wird gezeigt, wie ein Meet-Export erstellt wird. Mit dieser Anfrage werden Dateien exportiert, die mit Konten in der angegebenen Organisationseinheit verknüpft sind und einen Dateinamen haben, der dem Muster für Meet-Aufzeichnungen entspricht.

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()

Aus einer gespeicherten Abfrage exportieren

Im folgenden Beispiel wird gezeigt, wie Sie einen Export aus einer gespeicherten Abfrage erstellen.

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()

Exporte auflisten

Im folgenden Beispiel wird gezeigt, wie Sie eine Liste der mit einer Anfrage verknüpften Exporte abrufen.

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()

Informationen zu einem Export abrufen

Das folgende Beispiel zeigt, wie Sie Informationen zu einem bestimmten Export abrufen. Hinweis: Zum Herunterladen exportierter Dateien und Nachrichten verwenden Sie Cloud APIs (siehe nächstes Beispiel).

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()

Export aus Google Cloud herunterladen

Im folgenden Beispiel wird gezeigt, wie Sie alle abgeschlossenen Exporte auf einmal aus Google Cloud herunterladen. Für diese Anfrage werden die Vault- und Cloud APIs verwendet.

Hinweis:Zum Herunterladen eines Exports benötigt ein Konto die Berechtigung „Exporte verwalten“ und die mit ihm geteilte Rechtsangelegenheit.

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+'))

Export löschen

Im folgenden Beispiel wird gezeigt, wie ein Export gelöscht wird.

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()

App-spezifische Informationen zu Suche und Export, einschließlich Suchlimits, finden Sie im Hilfeartikel Jetzt mit den Such- und Exportfunktionen starten.