L'API Google Vault ti consente di gestire le esportazioni di Google Vault. Puoi eseguire le seguenti attività:
Crea esportazioni. Invia una richiesta a Vault per trovare i messaggi o i file che corrispondono alla tua query ed esportarli in Google Cloud.
Puoi eseguire fino a 20 esportazioni contemporaneamente in tutta l'organizzazione. Per velocizzare le esportazioni, dividi quelle di grandi dimensioni in esportazioni più piccole. Ad esempio, esporta i dati per mese anziché tutti in una volta. Un'altra opzione è includere meno elementi, come utenti, gruppi o spazi di chat, in ogni esportazione. Le esportazioni sono disponibili per 15 giorni dopo la creazione. Trascorso questo periodo, vengono eliminati e non sono più accessibili.
I seguenti esempi mostrano come creare esportazioni per diversi servizi:
Esportazioni di elenchi. Recuperare lo stato di tutte le esportazioni associate a una pratica.
Ottieni le esportazioni. Recupera informazioni su un'esportazione.
Scarica esportazioni. Scaricare un'esportazione da Google Cloud.
Elimina esportazioni. Rimuovi le esportazioni da una pratica quando non sono più necessarie.
Prima di iniziare
Per configurare le librerie e l'autenticazione richieste, segui la guida rapida per il tuo linguaggio di programmazione.
Per utilizzare le risorse di Vault, un account deve disporre dei privilegi Vault richiesti e dell'accesso alla pratica. Per accedere a una pratica, un account deve averla creata, deve averla condivisa o deve disporre del privilegio Visualizzazione di tutte le pratiche.
Creare un'esportazione di Gmail
Il seguente esempio mostra come creare un'esportazione di Gmail. Questa richiesta esporta tutti i messaggi di Gmail e della versione classica di Hangouts che soddisfano i seguenti criteri:
- Messaggi di proprietà degli account
email1eemail2. - Esclude le bozze dei messaggi.
- Messaggi inviati a
ceo@solarmora.com.
Questi esempi utilizzano il sistema di esportazione classico di Gmail. Per esportare
utilizzando il nuovo sistema di esportazione,
in MailExportOptions,
imposta useNewExport su 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()
Per le esportazioni di Gmail, le esportazioni in formato MBOX vengono elaborate più rapidamente rispetto a quelle in formato PST.
Crea un'esportazione di Drive
L'esempio seguente mostra come creare un'esportazione di Drive. Questa richiesta esporta tutti i file, inclusi quelli nei Drive condivisi, che soddisfano i seguenti criteri:
- Appartenere all'unità organizzativa specificata (ottenuta con l'SDK Admin).
Sono stati creati tra gli orari specificati.
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()
Creare un'esportazione di Meet
Il seguente esempio mostra come creare un'esportazione di Meet. Questa richiesta esporta i file associati agli account nell'unità organizzativa specificata che hanno un nome file che segue il pattern per le registrazioni di 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()
Esportare da una query salvata
L'esempio seguente mostra come creare un'esportazione da una query salvata.
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()
Elenco esportazioni
Il seguente esempio mostra come recuperare un elenco di esportazioni associate a una pratica.
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()
Ottenere informazioni su un'esportazione
L'esempio seguente mostra come ottenere informazioni su un'esportazione specifica. Per scaricare i file e i messaggi esportati, utilizza le API Cloud (nell'esempio successivo).
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()
Scaricare un'esportazione da Google Cloud
L'esempio seguente mostra come scaricare tutte le esportazioni completate in una pratica da Google Cloud. Questa richiesta utilizza le API Vault e Cloud.
Per scaricare un'esportazione, un account deve disporre del privilegio Gestione delle esportazioni e della pratica condivisa.
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+'))
Eliminare un'esportazione
L'esempio seguente mostra come eliminare un'esportazione.
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()
Per informazioni specifiche per le app su ricerca ed esportazione, inclusi i limiti di ricerca, consulta la Guida introduttiva per la ricerca e l'esportazione in Vault.