Google app engine 使用java从google云存储读取文件
我不熟悉谷歌云存储api,也不熟悉使用服务器。我正试图用Java编写一个web应用程序,使用Eclipse的IDE读取存储在google云存储中的文件。我在服务器端的文件中有要读取的代码,但不确定如何修改客户端的示例代码,使其支持httpServlet而不是RemoteServiceServlet。任何帮助或建议都将不胜感激 下面是我在服务器端的代码Google app engine 使用java从google云存储读取文件,google-app-engine,gwt,servlets,google-cloud-storage,Google App Engine,Gwt,Servlets,Google Cloud Storage,我不熟悉谷歌云存储api,也不熟悉使用服务器。我正试图用Java编写一个web应用程序,使用Eclipse的IDE读取存储在google云存储中的文件。我在服务器端的文件中有要读取的代码,但不确定如何修改客户端的示例代码,使其支持httpServlet而不是RemoteServiceServlet。任何帮助或建议都将不胜感激 下面是我在服务器端的代码 package com.google.gwt.sample.interfacecloud.server; import java.io.Buff
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;
}
}
您正在将RPC与普通servlet混合并匹配。你不应该那样做。如果您打算使用普通servlet,就不要使用用于此类交互的RPC接口。在这种情况下,使用RequestBuilder会更好。注意-您的要求不是很清楚吗 感谢您的回复,我发现我正在尝试将GWT与应用程序引擎插件一起使用。当我转而只使用appengine时,我就能够从谷歌云存储中存储的文件中读取数据。