Upload file from Google Drive to Dropbox
Caricare file da Google Drive in Dropbox con Google Apps Script
Può sempre essere utile avere una copia di backup dei file che salviamo su Google Drive anche su un altro servizio di archiviazione dati, così come salvare contemporaneamente i file in due sistemi distinti (di cui uno non di proprietà di Google) affinché siano accessibili anche da chi non ha un account Google o da un processo non collegato alle Google API.
Con Google Apps Script, sfruttando le API di Dropbox, è possibile caricare qualsiasi file presente in Google Drive direttamente nello spazio di Dropbox senza salvarlo sul proprio computer.
Il primo passaggio è quello di creare un account Dropbox (qualora non ne avessimo già uno disponibile), accedere alla relativa console di sviluppo e creare una nuova app Dropbox come mostrato in Fig.1:
La schermata successiva di Dropbox consentirà la creazione di un token di accesso con il quale saremo abilitati ad effettuare le chiamate alle API di Dropbox con il proprio account bypassando il flusso di autorizzazione Obox2.
A questo punto non resta altro che creare la funzione in un progetto Google Apps Script:
var dropboxAccessToken = '6uR-dtj7NlAAAAAAAAABi79...'; // L'Access Token di Dropbox
// Funzione per avviare il processo ()
uploadGoogleFilesToDropbox_('ID_DEL_FILE_SU_GOOGLE_DRIVE', 'NOME_DEL_FILE_SU_GOOGLE_DRIVE', dropboxAccessToken);
// Carica il file da Google Drive in Dropbox
function uploadGoogleFilesToDropbox_(googleDriveFileId, googleDriveFileName, dropboxAccessToken) {
var parameters = {
"path": "/" + googleDriveFileName,
"mode": "add",
"autorename": true,
"mute": false
};
var headers = {
"Content-Type": "application/octet-stream",
'Authorization': 'Bearer ' + dropboxAccessToken,
"Dropbox-API-Arg": JSON.stringify(parameters)
};
var driveFile = DriveApp.getFileById(googleDriveFileId);
var options = {
"method": "POST",
"headers": headers,
"payload": driveFile.getBlob().getBytes()
};
var apiUrl = "https://content.dropboxapi.com/2/files/upload";
var response = JSON.parse(UrlFetchApp.fetch(apiUrl, options).getContentText());
}
I parametri da passare alla funzione sono autoesplicativi: l'id del file su Google Drive (recuperabile con file.getId()), il nome del file (qualsiasi nome o lo stesso nome del file su Drive recuperabile con file.getName()), l'access token di Dropbox.
Non ci sono commenti
Nessuno ha ancora commentato questo articolo, fallo tu per primo!
scrivi un commento