如何访问另一个应用程序的存储桶内存在的文件

时间:2015-05-12 10:45:13

标签: google-app-engine google-cloud-storage

我正在尝试阅读另一个谷歌应用程序桶中的.txt文件。

以下是我的代码

              GcsInputChannel readChannel = null;
              BufferedReader reader = null;
              GcsFilename filename = new GcsFilename("abc.appspot.com","For_Prod_Scripts.txt");

              GcsService gcsService = GcsServiceFactory.createGcsService();
              // We can now read the file through the API:
              readChannel = gcsService.openReadChannel(filename,0);
              // Again, different standard Java ways of reading from the channel.
              reader = new BufferedReader(Channels.newReader(readChannel, "UTF8"));
              //CsvReader csvReader = new CsvReader(reader);
              String line = reader.readLine();

              while ((line = reader.readLine()) != null) {
                  log.warning("READ:" + line);
                }

我已将以下权限添加到存储桶权限和该存储桶的对象默认权限中。如下图所示。 123412341234是我的另一个应用程序的项目ID。在里面我正在访问那个桶

enter image description here

我正处于异常

之下
java.lang.RuntimeException: com.google.appengine.tools.cloudstorage.SimpleGcsInputChannelImpl$1@1f75e55: Unexpected cause of ExecutionException

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

需要将服务帐户电子邮件添加到存储桶权限以访问存储桶内的文件。