A API Vault permite gerenciar as exportações do Vault. Você pode:
Criar exportações: envie uma solicitação ao Vault para encontrar as mensagens ou os arquivos que correspondem à sua consulta e exportá-los para o Google Cloud.
Observação:
- É possível ter até 20 exportações em execução ao mesmo tempo na sua organização. Para acelerar as exportações, divida as grandes em menores. Por exemplo, exporte os dados por mês em vez de todos de uma vez. Outra opção é incluir menos itens, como usuários, grupos ou espaços do Chat, em cada exportação.
- As exportações ficam disponíveis por 15 dias após a criação. Depois desse período, elas são excluídas e não podem mais ser acessadas.
Exemplos:
Listar exportações: recupere o status de todas as exportações associadas a um caso.
Receber exportações: recupera informações sobre uma exportação.
Baixar exportações: baixe uma exportação do Google Cloud.
Excluir exportações: remova as exportações de um caso quando elas não forem mais necessárias.
Antes de começar
Para configurar as bibliotecas e a autenticação necessárias, siga o guia de início rápido da sua linguagem de programação.
Para trabalhar com recursos do Vault, a conta precisa ter os privilégios necessários do Vault e acesso ao caso. Para acessar um caso, a conta precisa ter criado o caso, ter recebido o compartilhamento dele ou ter o privilégio Ver todos os casos.
Criar uma exportação do Gmail
O exemplo a seguir mostra como criar uma exportação do Gmail. Essa solicitação exporta todas as mensagens do Gmail e do Hangouts clássico que atendem aos seguintes critérios:
- mensagens das contas
email1
eemail2
. - exclui mensagens de rascunho.
- mensagens enviadas para
ceo@solarmora.com
.
Dica:estes exemplos usam o sistema clássico de exportação do Gmail. Para exportar usando o
novo sistema de exportação,
em MailExportOptions,
defina useNewExport
como "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()
Criar uma exportação do Drive
O exemplo a seguir mostra como criar uma exportação do Drive. Essa solicitação exporta todos os arquivos, incluindo os que estão em drives compartilhados, que atendem aos seguintes critérios:
- pertencem à unidade organizacional especificada (obtida com o SDK Admin).
foram criados entre os horários especificados.
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()
Criar uma exportação do Meet
O exemplo a seguir mostra como criar uma exportação do Meet. Essa solicitação exporta arquivos associados a contas na unidade organizacional especificada que têm um nome de arquivo que segue o padrão das gravações do 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()
Exportar de uma consulta salva
O exemplo a seguir mostra como criar uma exportação com base em uma consulta salva.
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()
Listar exportações
O exemplo a seguir mostra como recuperar uma lista de exportações associadas a um caso.
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()
Receber informações sobre uma exportação
O exemplo a seguir mostra como receber informações sobre uma exportação específica. Observação: para baixar arquivos e mensagens exportados, use as APIs do Cloud (no próximo exemplo).
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()
Baixar uma exportação do Google Cloud
O exemplo a seguir mostra como baixar todas as exportações concluídas de um caso do Google Cloud. Essa solicitação usa as APIs do Vault e do Cloud.
Observação:para baixar uma exportação, uma conta precisa do privilégio "Gerenciar exportações" e do caso compartilhado com ela.
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+'))
Excluir uma exportação
O exemplo a seguir mostra como excluir uma exportação.
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()
Para informações específicas do app sobre pesquisa e exportação, incluindo limites de pesquisa, consulte Começar a usar a pesquisa e a exportação do Vault.