L'API Vault ti consente di gestire le esportazioni di Vault. Puoi:
Crea esportazioni: invia una richiesta a Vault per trovare i messaggi o i file corrispondenti alla tua query ed esportarli in Google Cloud.
Nota:non puoi eseguire più di 20 esportazioni contemporaneamente in tutta l'organizzazione. Per migliorare le prestazioni, suddividi le esportazioni di grandi dimensioni in set più piccoli. Ad esempio, suddividi l'esportazione per mese anziché esportare tutto contemporaneamente. Un altro esempio è includere meno entità (ad esempio utenti ed entità speciali come gruppi, spazi di chat e così via) in ogni esportazione.
Esempi:
Elenca le esportazioni: recupera lo stato di tutte le esportazioni associate a una richiesta.
Ottieni esportazioni: recupera le informazioni su un'esportazione.
Scarica le esportazioni: scarica un'esportazione da Google Cloud.
Elimina le esportazioni: rimuovi le esportazioni da una richiesta quando non sono più necessarie.
Prima di iniziare
Per configurare le librerie e l'autenticazione richieste, segui la procedura di avvio rapido per il tuo linguaggio di programmazione.
Per utilizzare le risorse di Vault, l'account deve disporre dei privilegi di Vault obbligatori e dell'accesso alla questione. Per accedere a una pratica, l'account deve averla creata, deve averla condivisa o disporre del privilegio Visualizzazione di tutte le pratiche.
Creare un'esportazione di Gmail
L'esempio seguente 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
email1
eemail2
. - esclude le bozze dei messaggi.
- Messaggi inviati a
ceo@solarmora.com
.
Suggerimento:questi esempi utilizzano il sistema di esportazione di Gmail classico. Per eseguire l'esportazione 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()
Creare un'esportazione di Drive
L'esempio seguente mostra come creare un'esportazione su Drive. Questa richiesta esporta tutti i file, inclusi quelli dei Drive condivisi, che soddisfano i seguenti criteri:
- Appartengono all'unità organizzativa specificata (ottenuta con l'SDK Admin).
sono stati creati tra le ore specificate.
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
L'esempio seguente mostra come creare un'esportazione di Meet. Questa richiesta esporta i file associati agli account dell'unità organizzativa specificata il cui nome 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
L'esempio seguente mostra come recuperare un elenco di esportazioni associate a una richiesta.
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()
Visualizzare le informazioni su un'esportazione
L'esempio seguente mostra come ottenere informazioni su un'esportazione specifica. Nota: 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 da Google Cloud. Questa richiesta utilizza le API Vault e Cloud.
Nota: per scaricare un'esportazione, un account deve disporre del privilegio Gestione delle esportazioni e della pratica condivisa con l'account.
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 sull'app sulla ricerca e sull'esportazione, inclusi i limiti di ricerca, consulta la Guida introduttiva per la ricerca e l'esportazione in Vault.