Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Java从Google云存储中读取文件_Java_Google Cloud Storage - Fatal编程技术网

如何用Java从Google云存储中读取文件

如何用Java从Google云存储中读取文件,java,google-cloud-storage,Java,Google Cloud Storage,我想使用Java从Google云存储中读取一个文件。下面的链接没有帮助,因为我不使用HttpServletRequest和HttpServletResponse 有没有其他方法可以让我做到这一点?我正在以POC的形式编写一个简单的独立程序,实现这一点最简单的方法是使用Google的Java库。下载的内容如下所示: String PROJECT_ID = "my-project"; String PATH_TO_JSON_KEY = "/path/to/json/key"; String BUC

我想使用Java从Google云存储中读取一个文件。下面的链接没有帮助,因为我不使用HttpServletRequest和HttpServletResponse


有没有其他方法可以让我做到这一点?我正在以POC的形式编写一个简单的独立程序,实现这一点最简单的方法是使用Google的Java库。下载的内容如下所示:

String PROJECT_ID = "my-project";
String PATH_TO_JSON_KEY = "/path/to/json/key";
String BUCKET_NAME = "my-bucket";
String OBJECT_NAME = "my-object";

StorageOptions options = StorageOptions.newBuilder()
            .setProjectId(PROJECT_ID)
            .setCredentials(GoogleCredentials.fromStream(
                    new FileInputStream(PATH_TO_JSON_KEY))).build();

Storage storage = options.getService();
Blob blob = storage.get(BUCKET_NAME, OBJECT_NAME);
ReadChannel r = blob.reader();
阅读此文档以了解更多信息

您的代码应该是:

Storage storage = StorageOptions.newBuilder()
            .setProjectId(projectId)
            .setCredentials(GoogleCredentials.fromStream(new FileInputStream(serviceAccountJSON)))
            .build()
            .getService();
Blob blob = storage.get(BUCKET_URL, OBJECT_URL);
String fileContent = new String(blob.getContent());

谢谢布兰登,事实上我对整个概念都很陌生。在这种情况下,我不确定什么是项目ID、路径到JSON键、对象名等(我知道Bucket名!)。请帮助无论何时您在谷歌云存储中工作,您都在“项目”中工作。这是您创建的第一件事,它代表了跨多个云工具的一组工作,这些工具的计费方式都是相同的。它有一个字符串标识符;您将在云控制台的主页上看到它。运行Java代码的独立程序需要某种授权才能读取对象。这通常是通过在代表该程序的项目中创建服务帐户来完成的。服务帐户将附带一个JSON文件,库可以使用该文件作为该服务帐户进行身份验证。PATH_TO_JSON_KEY是该文件在本地文件系统中的位置。GCS bucket具有全局唯一的名称,如“my-GCS-bucket-75”。BUCKET\u NAME是您正在读取的BUCKET的名称。GCS对象也有名称,可能类似于“images/foo.jpeg”。这就是OBJECT_NAME的含义。您可能会发现这里的教程很有用:注意,这会在内存中完全读取文件,如果文件是hugeyah,如果您需要将文件写入磁盘,则可能不需要这样做。->