Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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将文件上传到googlecloud_Java - Fatal编程技术网

如何通过java将文件上传到googlecloud

如何通过java将文件上传到googlecloud,java,Java,我想上传一个文件到谷歌云存储Api中的bucket中。但当我运行servelet类时,它成功部署,并在浏览器中显示输出,如现在所示,请参见您上传到存储中的文件内容。。 文件上传完成 但问题是servelet类不会建立到Google云存储的连接。文件也不会上传到bucket中。一旦检查 并给出如何使用此源代码连接到bucket的建议 public class TestCloudStorageServlet extends HttpServlet{ private static final l

我想上传一个文件到谷歌云存储Api中的bucket中。但当我运行servelet类时,它成功部署,并在浏览器中显示输出,如现在所示,请参见您上传到存储中的文件内容。。 文件上传完成

但问题是servelet类不会建立到Google云存储的连接。文件也不会上传到bucket中。一旦检查

并给出如何使用此源代码连接到bucket的建议

 public class TestCloudStorageServlet extends HttpServlet{

 private static final long serialVersionUID = 1L;
 private StorageService storage = new StorageService();
 private static final int BUFFER_SIZE = 1024 * 1024;
 private static final Logger log = Logger.getLogger(TestCloudStorageServlet.class.getName()); 
 @Override
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
   log.info(this.getServletInfo()+" Servlets called....");
     resp.setContentType("text/plain");
    resp.getWriter().println("Now see here your file content, that you have uploaded on    storage..");

  ServletFileUpload upload = new ServletFileUpload();
     System.out.println(upload);
    FileItemIterator iter;
   try {
    iter = upload.getItemIterator(req);

    while (iter.hasNext()) {
   FileItemStream item = iter.next();
   String fileName = item.getName();
   String mime = item.getContentType();

   storage.init(fileName, mime);
   InputStream is = item.openStream();

   byte[] b = new byte[BUFFER_SIZE];
   int readBytes = is.read(b, 0, BUFFER_SIZE);
   while (readBytes != -1) {
       storage.storeFile(b, readBytes);
       readBytes = is.read(b, 0, readBytes);
   }

   is.close();
   storage.destroy();

    resp.getWriter().println("File uploading done");

     //resp.getWriter().println("READ:" + storage.readTextFileOnly(fileName));

                     log.info(this.getServletName()+" ended....");        

      }
     } 
       catch (FileUploadException e) {
           System.out.println("FileUploadException::"+e.getMessage());
         log.severe(this.getServletName()+":FileUploadException::"+e.getMessage());
      e.printStackTrace();
       } catch (Exception e) {
    log.severe(this.getServletName()+":Exception::"+e.getMessage());
         System.out.println("Exception::"+e.getMessage());
     e.printStackTrace();
     }
       }
用于上载文件的我的StorageService类

       public class StorageService {

         public static final String BUCKET_NAME = "mybucketname";  

        private FileWriteChannel writeChannel = null;
            FileService fileService = FileServiceFactory.getFileService();
        private OutputStream os = null;
        private static final Logger log =            Logger.getLogger(StorageService.class.getName());

       public void init(String fileName, String mime) throws Exception {
      System.out.println("Storage service:init() method:  file name:"+fileName+"  and                mime:"+mime);
     log.info("Storage service:init() method:  file name:"+fileName+" and mime:"+mime);
        log.info("test.."); 
   GSFileOptionsBuilder builder = new GSFileOptionsBuilder()
        .setAcl("public_read")
        .setBucket(BUCKET_NAME)
        .setKey(fileName)
        .setMimeType(mime);
   log.info("test..");
 AppEngineFile writableFile = fileService.createNewGSFile(builder.build());
 boolean lock = true;
 writeChannel = fileService.openWriteChannel(writableFile, lock);
    os = Channels.newOutputStream(writeChannel);
      }

        public void storeFile(byte[] b, int readSize) throws Exception {
      os.write(b, 0, readSize);
        os.flush();
     }


      public void destroy() throws Exception {
      log.info("Storage service: destroy() method");
      os.close();
    writeChannel.closeFinally();
       }

       }

这是我的servlet类在哪里?请给我解决方案我是一个学习第八标准的小孩。只是我知道的话题很少,甚至比不上你。我发表这篇评论是出于学习如何通过java上传文件的好奇心