String fileId = "some file ID";
OutputStream outputStream = new ByteArrayOutputStream();
driveService.files().get(fileId)
.executeMediaAndDownloadTo(outputStream);
我没有发现代码实际下载文件的迹象,也不知道文件是否真的下载了。我不确定我是否使用了正确的范围来获得下载文件的权限。只要我知道文件ID,我就可以上传、列出和删除文件,但下载似乎不起作用。
private static final List<String> SCOPES = Collections.singletonList(DriveScopes.DRIVE);
private static void downloadFile(Drive service, File file (or String fileID)){
}
但我不确定如何做到这一点。我尝试在网上寻找样本,但大多数来自v1或v2 API,似乎对我不起作用。
另外,我在某个地方读到,下载文件夹是不可能的。取而代之的是,我必须逐一下载文件夹中的每一项。那么,我是否必须创建一个ArrayList/List/Array,并在初始化一个变量来表示FileID之后遍历它呢?
编辑:已经取得了一些进展,但我仍有一些问题要解决。
List<File> files = result.getFiles();
File newFile;
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());
String fileId = file.getId();
//System.out.println(fileId);
String fileName = file.getName();
//System.out.println(fileName);
OutputStream outputstream = new FileOutputStream();
service.files().get(fileId)
.executeMediaAndDownloadTo(outputstream);
outputstream.flush();
outputstream.close();
}
OutputStream outputstream = new FileOutputStream();
service.files().get(fileId)
.executeMediaAndDownloadTo(outputstream);
下载所有文件。
我在Google Drive中的文件夹层次结构如下所示:
日志
----一堆。bin文件
--.xml文件
--.xml文件
您正在使用ByteArrayOutputStream
对象作为下载的输出。如果程序终止时没有将此对象的内容保存在某个地方,那么您将无法在计算机磁盘中找到此信息,因为它没有写入磁盘,而是以缓冲字节数组的形式保存在内存中(有关详细信息,请参阅前面的链接)。
如果您想将下载的输出保存到文件中,我建议您使用FileOutputStream
作为下载的目的地。为了做到这一点,您必须按以下方式修改代码:
>
添加适当的导入
声明:
import java.io.FileOutputStream;
OutputStream outputStream = new FileOutputStream('/tmp/downloadedfile');
outputStream.flush();
outputStream.close();
String destinationFolder = "/tmp/downloadedfiles/";
List<File> files = result.getFiles();
File newFile;
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());
String fileId = file.getId();
String fileName = file.getName();
OutputStream outputstream = new FileOutputStream(destinationFolder + fileName);
service.files().get(fileId)
.executeMediaAndDownloadTo(outputstream);
outputstream.flush();
outputstream.close();
}
}
下载 <?php /** * 下载文件请求示例 */ require dirname(__DIR__) . '/vendor/autoload.php'; use Yurun\Util\HttpRequest; use Yurun\Util\YurunHttp; use Yurun\Util\YurunHttp\Handler\Swoole; $url = 'http://www.baid
文件名的开始是相同的,但结束是动态的,每次我点击下载时都会改变 我所做的: 你能帮忙吗
基于@ari答案的解决方案我已经更新了代码。现在它被优化到只使用1MB(我不知道这是否是将进程分成块的最佳方式,但现在它似乎得到了改进,并且不提供OOM)。我将尝试通过检测可以使用多少堆内存来进一步优化它,但我不确定是否可以实现这一点。直到比这似乎是最好的选择。再次感谢@Ari。
问题内容: 我正在尝试使用Flask创建一个Web应用程序,该应用程序允许用户上传文件并将其提供给其他用户。现在,我可以将文件正确地上传到upload_folder了。但是我似乎找不到找到让用户下载回来的方法。 我将文件名的名称存储到数据库中。 我有一个为数据库对象服务的视图。我也可以删除它们。 在我的HTML中,我有: 和下载视图: 但它正在返回: 未找到 在服务器上找不到请求的URL。如果您手
问题内容: 我是使用Django的新手,我正在尝试开发一个网站,用户可以在其中上传许多excel文件,然后将这些文件存储在媒体文件夹Webproject / project / media中。 然后,该文档会与它们上载的任何其他文档一起显示在列表中,你可以单击这些文档,它会显示有关它们的基本信息以及他们上载的excelfile的名称。从这里,我希望能够使用链接再次下载相同的excel文件: 我的网
问题内容: 我正在使用简单的文件下载脚本: 它在最大200mb的本地服务器上运行。 当我在我的网站上尝试此代码时,它将下载173KB而不是200MB的文件。 我检查了所有内容,编写了一些自定义代码(使用ob函数和fread而非readfile),但无法下载大文件。 谢谢您的回答。 我正在使用Apache 2.2,PHP 5.3 可以处理所有大文件的所有PHP设置。(执行时间,内存限制,… 问题答案
当我尝试使用Java代码以编程方式下载文件时,遇到了一个异常: 下面是我的代码,包括我想下载的文件: 最初我尝试使用协议下载,但它给我一个状态代码,因此我意识到它重定向到。但是,从上面给出了。使用浏览器,下载工作完美无缺。如何使用Java代码正确下载文件?
我有一个文件表示为块的列表,目标是下载所有块,加入并保存为一个文件。 它应该适用于大文件 应该是跨浏览器解决方案 null null null null 但我仍然无法实现我的目标与涵盖的需求… 如果有人有经验,最好的解决方案,我恳请分享它在这里。谢谢