1

我正在尝试将应用引擎应用程序中的数据存储到谷歌云存储。

如果我在本地执行,代码运行良好,但我没有看到任何数据被存储。

如果我将应用程序上传到应用程序引擎,则在以下位置运行代码时会出现空指针异常:AppEngineFile writableFile = fileService.createNewGSFile(optionsBuilder.build());

我使用的完整代码是

        // Get the file service
        FileService fileService = FileServiceFactory.getFileService();

        /**
         * Set up properties of your new object
         * After finalizing objects, they are accessible
         * through Cloud Storage with the URL:
         * http://commondatastorage.googleapis.com/my_bucket/my_object
         */
        GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
          .setBucket("blood")
          .setKey("1234567")
          .setAcl("public-read")
          .setMimeType("text/html");//.setUserMetadata("date-created", "092011", "owner", "Jon");


        // Create your object
        AppEngineFile writableFile = fileService.createNewGSFile(optionsBuilder.build());

        // Open a channel for writing
        boolean lockForWrite = true; // Do you want to exclusively lock this object?
        FileWriteChannel writeChannel = fileService.openWriteChannel(writableFile, lockForWrite);
        // For this example, we write to the object using the PrintWriter
        PrintWriter out = new PrintWriter(Channels.newWriter(writeChannel, "UTF8"));
        out.println("The woods are lovely and deep.");
        out.println("But I have promises too keep.");

        // Close the object without finalizing.
        out.close();

        // Finalize the object
        writeChannel.closeFinally();
        System.out.println("Completed writing to google storage");
4

2 回答 2

1

将开发服务和文件服务与 Google Storage 一起使用时,它实际上不会写入您的 Google Storage 存储桶,而是写入本地文件系统 - 您是否希望它写入 Google Storage?

对于空指针异常,需要查看堆栈跟踪以尝试缩小问题范围。

于 2012-03-18T09:04:21.613 回答
0

所以问题是应用引擎没有被授权读取/写入在云存储中创建的存储桶。

于 2012-03-20T22:35:43.280 回答