使用java从谷歌云存储中读取文件 [英] Reading in a file from google cloud storage using java

查看:147
本文介绍了使用java从谷歌云存储中读取文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对谷歌云存储api以及使用服务器都很陌生。我正在尝试使用Eclipse的IDE编写一个使用Java编写的Web应用程序来读取存储在谷歌云存储中的文件。我有代码读取服务器端的文件,并且不知道如何修改客户端的示例代码,以便它支持httpServlet而不是RemoteServiceServlet。任何帮助或建议将不胜感激!



以下是我在服务器端的代码。

  package com.google.gwt.sample.interfacecloud.server; 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.channels.Channels;
import java.util.ArrayList;

import javax.servlet.http。*;
import com.google.gwt.sample.interfacecloud.client.GreetingService;

导入com.google.appengine.api.files.AppEngineFile;
import com.google.appengine.api.files.FileReadChannel;
import com.google.appengine.api.files.FileService;
import com.google.appengine.api.files.FileServiceFactory;
import com.google.appengine.api.files.FileWriteChannel;
导入com.google.appengine.api.files.GSFileOptions.GSFileOptionsBuilder;

@SuppressWarnings(serial)
public class CloudInteraction extends HttpServlet implements GreetingService {
public static final String BUCKETNAME =obd_data;
public static final String FILENAME =data.txt;
$ b @Override
public void doGet(HttpServletRequest req,HttpServletResponse resp)throws IOException
{
resp.setContentType(text / plain);

字符串文件名=/ gs /+ BUCKETNAME +/+ FILENAME;
FileService fileService = FileServiceFactory.getFileService();
AppEngineFile readableFile = new AppEngineFile(filename);
FileReadChannel readChannel =
fileService.openReadChannel(readableFile,false);
BufferedReader reader =
新的BufferedReader(Channels.newReader(readChannel,UTF8));
String line = reader.readLine();
resp.getWriter()。println(READ:+ line);
System.out.println(line);
readChannel.close();

$ b @Override
public String greetServer(String name)throws IllegalArgumentException {
// TODO自动生成的方法存根
返回null;
}

}


解决方案

您正在将RPC与纯Servlet混合并匹配。你不应该那样做。如果您打算使用简单的Servlet,则不要使用此类交互的RPC接口。在这种情况下,您最好使用RequestBuilder。请注意 - 您的要求是什么并不是很清楚。

I am new to google cloud storage api, as well as using servers. I'm trying to write a web application in Java using Eclipse's IDE to read in a file that is stored in google's cloud storage. I have the code to read in the file on the server side, and am not sure how to modify the sample code on the client side so that it supports an httpServlet instead of a RemoteServiceServlet. Any help or suggestions would be greatly appreciated!

Below is my code on the server side.

package com.google.gwt.sample.interfacecloud.server;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.channels.Channels;
import java.util.ArrayList;

import javax.servlet.http.*;
import com.google.gwt.sample.interfacecloud.client.GreetingService;

import com.google.appengine.api.files.AppEngineFile;
import com.google.appengine.api.files.FileReadChannel;
import com.google.appengine.api.files.FileService;
import com.google.appengine.api.files.FileServiceFactory;
import com.google.appengine.api.files.FileWriteChannel;
import com.google.appengine.api.files.GSFileOptions.GSFileOptionsBuilder;

@SuppressWarnings("serial")
public class CloudInteraction extends HttpServlet implements GreetingService{
public static final String BUCKETNAME = "obd_data";
public static final String FILENAME = "data.txt";

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
{
    resp.setContentType("text/plain");

    String filename = "/gs/" + BUCKETNAME + "/" + FILENAME;
    FileService fileService = FileServiceFactory.getFileService();
    AppEngineFile readableFile = new AppEngineFile(filename);
    FileReadChannel readChannel =
            fileService.openReadChannel(readableFile, false);
    BufferedReader reader = 
            new BufferedReader(Channels.newReader(readChannel, "UTF8"));
    String line = reader.readLine();
    resp.getWriter().println("READ:"+line);
    System.out.println(line);
    readChannel.close();
}

@Override
public String greetServer(String name) throws IllegalArgumentException {
    // TODO Auto-generated method stub
    return null;
}

}

解决方案

You are mixing and matching RPC with plain Servlets. You should not be doing that. Do away with RPC interfaces for such interactions if you intend to you plain Servlets. You would be better served with RequestBuilder in this scenario. Note - it is not very clear what your are requirements are?

这篇关于使用java从谷歌云存储中读取文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆