StringPaginationToken paginationToken = (StringPaginationToken) exportInformation.getPaginationData(); driveListOperation.setPageToken(paginationToken.getToken()); .setFields("files(id, name, modifiedTime, mimeType)") .setQ(String.format(DRIVE_QUERY_FORMAT, parentId)); FileList fileList = driveListOperation.execute();
List listRequest = mock(List.class); when(files.list()).thenReturn(listRequest); when(listRequest.setFields(anyString())).thenReturn(listRequest); when(listRequest.setPageSize(anyInt())).thenReturn(listRequest); when(listRequest.execute()).thenReturn(rootFileList); when(listRequest.setQ(fs.buildQuery(folderL1, null).get())).thenReturn(ListL1Request); when(ListL1Request.execute()).thenReturn(FileListL1); when(listRequest.setQ(fs.buildQuery(folderL2, null).get())).thenReturn(ListL2Request); when(ListL2Request.execute()).thenReturn(FileListL2);
final FileList list = session.getClient().files().list() .setIncludeTeamDriveItems(true) .setSupportsTeamDrives(PreferencesFactory.get().getBoolean("googledrive.teamdrive.enable")) .setQ(query) .setOrderBy("name") .setPageToken(page) .setFields(fields) .setPageSize(pagesize).execute(); if(log.isDebugEnabled()) { log.debug(String.format("Chunk of %d retrieved", list.getFiles().size()));
Drive.Files.List request = client.files() .list() .setFields("files/id,files/mimeType,files/modifiedTime,files/size,files/permissions") .setPageSize(pageSize); if (query.isPresent()) { request = request.setQ(query.get()); request = request.setPageToken(pageToken); fileList = request.execute(); } catch (GoogleJsonResponseException e) { GoogleJsonError error = e.getDetails();
putFile.setParents(Collections.singletonList(folderId)); Files.List fileRequest = drive.files().list() .setQ(format(QUERY_NOTTRASHED_NAME_NOTMIME_INPARENTS, parameters.getResourceName(), MIME_TYPE_FOLDER, folderId)); LOG.debug("[putResource] `{}` Exists in `{}` ? with `{}`.", parameters.getResourceName(), parameters.getDestinationFolderId(), fileRequest.getQ()); FileList existingFiles = fileRequest.execute(); if (existingFiles.getFiles().size() > 1) { throw new IOException(messages.getMessage("error.file.more.than.one", parameters.getResourceName()));
putFile.setParents(Collections.singletonList(folderId)); Files.List fileRequest = drive.files().list() .setQ(format(QUERY_NOTTRASHED_NAME_NOTMIME_INPARENTS, parameters.getResourceName(), MIME_TYPE_FOLDER, folderId)); LOG.debug("[putResource] `{}` Exists in `{}` ? with `{}`.", parameters.getResourceName(), parameters.getDestinationFolderId(), fileRequest.getQ()); FileList existingFiles = fileRequest.execute(); if (existingFiles.getFiles().size() > 1) { throw new IOException(messages.getMessage("error.file.more.than.one", parameters.getResourceName()));
private boolean processFolder() throws IOException { if (folderId == null && !subFolders.isEmpty()) { folderId = subFolders.get(0); subFolders.remove(0); request.setQ(format(query, folderId)); LOG.debug("query = {} {}.", query, folderId); } searchResults.clear(); FileList files = request.execute(); for (File file : files.getFiles()) { if (canAddSubFolder(file.getMimeType())) { subFolders.add(file.getId()); } if (canAddFile(file.getMimeType())) { searchResults.add(file); result.totalCount++; } } request.setPageToken(files.getNextPageToken()); searchCount = searchResults.size(); // finished for folderId if (StringUtils.isEmpty(request.getPageToken()) || searchCount == 0) { folderId = null; } return searchCount > 0; }
.setFields("nextPageToken, files(" + REQUEST_FILE_FIELDS + ")"); request.setQ("trashed = false and '" + id + "' in parents"); FileList files = request.execute(); request.setPageToken(files.getNextPageToken()); } while (request.getPageToken() != null && request.getPageToken().length() > 0); return childIds; } catch (GoogleJsonResponseException e) {
@Override public boolean start() throws IOException { /* build query string */ String qTrash = includeTrashedFiles ? "" : Q_AND + Q_NOT_TRASHED; query = Q_IN_PARENTS + ("DIRECTORIES".equals(listModeStr) ? QUERY_MIME_FOLDER : "") + qTrash; request = drive.files().list(); request.setFields(FIELDS_SELECTION); // if (folderAccessMethod.equals(AccessMethod.Id)) { subFolders.add(folderName); } else { subFolders = utils.getFolderIds(folderName, includeTrashedFiles); } LOG.debug("[start] subFolders = {}.", subFolders); if (subFolders.size() == 0) { LOG.warn(messages.getMessage("error.folder.inexistant", folderName)); return false; } if (subFolders.size() > 1) { LOG.warn(messages.getMessage("error.folder.more.than.one", folderName)); } return processFolder(); }
private boolean processFolder() throws IOException { if (folderId == null && !subFolders.isEmpty()) { folderId = subFolders.get(0); subFolders.remove(0); request.setQ(format(query, folderId)); LOG.debug("query = {} {}.", query, folderId); } searchResults.clear(); FileList files = request.execute(); for (File file : files.getFiles()) { if (canAddSubFolder(file.getMimeType())) { subFolders.add(file.getId()); } if (canAddFile(file.getMimeType())) { searchResults.add(file); result.totalCount++; } } request.setPageToken(files.getNextPageToken()); searchCount = searchResults.size(); // finished for folderId if (StringUtils.isEmpty(request.getPageToken()) || searchCount == 0) { folderId = null; } return searchCount > 0; }
@Override public boolean start() throws IOException { /* build query string */ String qTrash = includeTrashedFiles ? "" : Q_AND + Q_NOT_TRASHED; query = Q_IN_PARENTS + ("DIRECTORIES".equals(listModeStr) ? QUERY_MIME_FOLDER : "") + qTrash; request = drive.files().list(); request.setFields(FIELDS_SELECTION); // if (folderAccessMethod.equals(AccessMethod.Id)) { subFolders.add(folderName); } else { subFolders = utils.getFolderIds(folderName, includeTrashedFiles); } LOG.debug("[start] subFolders = {}.", subFolders); if (subFolders.size() == 0) { LOG.warn(messages.getMessage("error.folder.inexistant", folderName)); return false; } if (subFolders.size() > 1) { LOG.warn(messages.getMessage("error.folder.more.than.one", folderName)); } return processFolder(); }
/** * @param sourceFolderId source folder ID * @param destinationFolderId folder ID where to copy the sourceFolderId's content * @param newName folder name to assign * @return created folder ID * @throws IOException when operation fails */ public String copyFolder(String sourceFolderId, String destinationFolderId, String newName) throws IOException { LOG.debug("[copyFolder] sourceFolderId: {}; destinationFolderId: {}; newName: {}", sourceFolderId, destinationFolderId, newName); // create a new folder String newFolderId = createFolder(destinationFolderId, newName); // Make a recursive copy of all files/folders inside the source folder String query = format(Q_IN_PARENTS, sourceFolderId) + Q_AND + Q_NOT_TRASHED; FileList originals = drive.files().list().setQ(query).execute(); LOG.debug("[copyFolder] Searching for copy {}", query); for (File file : originals.getFiles()) { if (file.getMimeType().equals(MIME_TYPE_FOLDER)) { copyFolder(file.getId(), newFolderId, file.getName()); } else { copyFile(file.getId(), newFolderId, file.getName(), false); } } return newFolderId; }
/** * @param sourceFolderId source folder ID * @param destinationFolderId folder ID where to copy the sourceFolderId's content * @param newName folder name to assign * @return created folder ID * @throws IOException when operation fails */ public String copyFolder(String sourceFolderId, String destinationFolderId, String newName) throws IOException { LOG.debug("[copyFolder] sourceFolderId: {}; destinationFolderId: {}; newName: {}", sourceFolderId, destinationFolderId, newName); // create a new folder String newFolderId = createFolder(destinationFolderId, newName); // Make a recursive copy of all files/folders inside the source folder String query = format(Q_IN_PARENTS, sourceFolderId) + Q_AND + Q_NOT_TRASHED; FileList originals = drive.files().list().setQ(query).execute(); LOG.debug("[copyFolder] Searching for copy {}", query); for (File file : originals.getFiles()) { if (file.getMimeType().equals(MIME_TYPE_FOLDER)) { copyFolder(file.getId(), newFolderId, file.getName()); } else { copyFile(file.getId(), newFolderId, file.getName(), false); } } return newFolderId; }
public List<File> listChildren(String parentId) { List<File> resultList = new LinkedList<File>(); Drive drive = driveFactory.getDrive(this.credential); try { Drive.Files.List request = drive.files().list().setFields("nextPageToken, files"); request.setQ("trashed = false and '" + parentId + "' in parents"); request.setPageSize(1000); LOGGER.log(Level.FINE, "Listing children of folder " + parentId + "."); do { FileList fileList = executeWithRetry(options, () -> request.execute()); List<File> items = fileList.getFiles(); resultList.addAll(items); request.setPageToken(fileList.getNextPageToken()); } while (request.getPageToken() != null && request.getPageToken().length() > 0); if (LOGGER.isLoggable(Level.FINE)) { for (File file : resultList) { LOGGER.log(Level.FINE, "Child of " + parentId + ": " + file.getId() + ";" + file.getName() + ";" + file.getMimeType()); } } removeDuplicates(resultList); return resultList; } catch (IOException e) { throw new JDriveSyncException(JDriveSyncException.Reason.IOException, "Failed to execute list request: " + e.getMessage(), e); } }
public List<File> search(Optional<String> title) { Drive drive = driveFactory.getDrive(this.credential); try { List<File> result = new ArrayList<File>(); Drive.Files.List request = drive.files().list(); request.setPageSize(1000); String query = ""; if (title.isPresent()) { query += " name = '" + title.get() + "'"; } if (query.length() > 0) { request.setQ(query); } do { FileList files = executeWithRetry(options, () -> request.execute()); result.addAll(files.getFiles()); request.setPageToken(files.getNextPageToken()); } while (request.getPageToken() != null && request.getPageToken().length() > 0); return result; } catch (IOException e) { throw new JDriveSyncException(JDriveSyncException.Reason.IOException, "Failed to list all files: " + e.getMessage(), e); } }
public static void main(String... args) throws IOException, GeneralSecurityException { // Build a new authorized API client service. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); Drive service = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT)) .setApplicationName(APPLICATION_NAME) .build(); // Print the names and IDs for up to 10 files. FileList result = service.files().list() .setPageSize(10) .setFields("nextPageToken, files(id, name)") .execute(); List<File> files = result.getFiles(); if (files == null || files.isEmpty()) { System.out.println("No files found."); } else { System.out.println("Files:"); for (File file : files) { System.out.printf("%s (%s)\n", file.getName(), file.getId()); } } } }
public String getResourceId(String query, String resourceName, String type) throws IOException { LOG.debug("[getResourceId] Searching for {} named {} with `{}`.", type, resourceName, query); FileList files = drive.files().list().setQ(query).execute(); if (files.getFiles().size() > 1) { String errorMsg = messages.getMessage(format("error.%s.more.than.one", type), resourceName); LOG.error(errorMsg); throw new IOException(errorMsg); } else if (files.getFiles().isEmpty()) { String errorMsg = messages.getMessage(format("error.%s.inexistant", type), resourceName); LOG.error(errorMsg); throw new IOException(errorMsg); } LOG.debug("[getResourceId] Found `{}` [{}].", resourceName, files.getFiles().get(0).getId()); return files.getFiles().get(0).getId(); }
public String getResourceId(String query, String resourceName, String type) throws IOException { LOG.debug("[getResourceId] Searching for {} named {} with `{}`.", type, resourceName, query); FileList files = drive.files().list().setQ(query).execute(); if (files.getFiles().size() > 1) { String errorMsg = messages.getMessage(format("error.%s.more.than.one", type), resourceName); LOG.error(errorMsg); throw new IOException(errorMsg); } else if (files.getFiles().isEmpty()) { String errorMsg = messages.getMessage(format("error.%s.inexistant", type), resourceName); LOG.error(errorMsg); throw new IOException(errorMsg); } LOG.debug("[getResourceId] Found `{}` [{}].", resourceName, files.getFiles().get(0).getId()); return files.getFiles().get(0).getId(); }