问题描述
我有一个 Google Bucket 中的文件列表。我必须在 Google Drive 中创建一个文件夹并将所有文件从 Google Bucket 上传到该文件夹中。我正在正确上传文件,但无法将文件上传到特定文件夹。文件一一上传到云端硬盘根文件夹中,但我希望它们位于特定文件夹中。
Page<Blob> blobs = bucket.list(Storage.BlobListOption.prefix(BucketUrl));
Drive driveService = DriveConfUtil.getDriveService(accesstoken);
for (Blob fileBlob: blobs.getValues()) {
InputStream inputStream = new
ByteArrayInputStream(fileBlob.getContent(BlobSourceOption.generationmatch()));
File file = new File();
file.setName(fileBlob.getName());
file.setMimeType("application/mydocfolder.folder");
File file1 = null;
try {
AbstractInputStreamContent streamContent = null;
streamContent = new InputStreamContent("application/pdf",inputStream);
file1 = driveService.files().create(file,streamContent).setFields("id").execute();
} catch (IOException e) {
e.printstacktrace();
}
}
解决方法
我知道您的脚本正确上传了文件,但它是在云端硬盘主文件夹而不是您想要的文件夹中上传的。您只需在 request body 中填写 parents[]
参数即可轻松解决此问题。要在该参数中指定文件夹,您需要它的 id。请记住,一个云端硬盘文件可以同时托管在不同的文件夹中。不要犹豫,问我任何澄清。