• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java BlobInfoFactory类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.google.appengine.api.blobstore.BlobInfoFactory的典型用法代码示例。如果您正苦于以下问题:Java BlobInfoFactory类的具体用法?Java BlobInfoFactory怎么用?Java BlobInfoFactory使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



BlobInfoFactory类属于com.google.appengine.api.blobstore包,在下文中一共展示了BlobInfoFactory类的16个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: serveDownload

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
/**
 * Serves the attachment with cache control.
 *
 * @param req Only used to check the If-Modified-Since header.
 */
public void serveDownload(AttachmentId id,
    HttpServletRequest req, HttpServletResponse resp) throws IOException {
  if (maybeCached(req, resp, "download, id=" + id)) {
    return;
  }
  AttachmentMetadata metadata = getMetadata(id);
  if (metadata == null) {
    throw NotFoundException.withInternalMessage("Attachment id unknown: " + id);
  }
  BlobKey key = metadata.getBlobKey();
  BlobInfo info = new BlobInfoFactory().loadBlobInfo(key);
  String disposition = "attachment; filename=\""
      // TODO(ohler): Investigate what escaping we need here, and whether the
      // blobstore service has already done some escaping that we need to undo
      // (it seems to do percent-encoding on " characters).
      + info.getFilename().replace("\"", "\\\"").replace("\\", "\\\\")
      + "\"";
  log.info("Serving " + info + " with Content-Disposition: " + disposition);
  resp.setHeader("Content-Disposition", disposition);
  blobstore.serve(key, resp);
}
 
开发者ID:ArloJamesBarnes,项目名称:walkaround,代码行数:27,代码来源:AttachmentService.java


示例2: assignBlobKey

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
/**
 * Returns a new blobkey for an uploaded blob.
 * If no blob was uploaded, then null is returned.
 * @param req
 * 			: the HTTP Servlet Request from the Servlet
 * @param paramName
 * 			: the name of the HTTP blob parameter
 * @param blobStoreService
 * 			: the blobstore service initialized in the calling servlet
 * @return a new BlobKey for this blob
 */
public static BlobKey assignBlobKey(HttpServletRequest req, String paramName, 
		BlobstoreService blobstoreService) {
       java.util.Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(req);
       List<BlobKey> blobKeys = blobs.get(paramName);
       if (blobKeys != null) {
       	BlobKey blobKey = blobKeys.get(0);
           final BlobInfo blobInfo = new BlobInfoFactory().loadBlobInfo(blobKey);
           if (blobKey != null) {
           	if (blobInfo.getSize() > 0) {
           		return blobKey;
           	}
           	else {
           		blobstoreService.delete(blobKey);
           		return null;
           	}
           }
           else {
           	return null;
           }
	}
       else {
       	return null;
       }
}
 
开发者ID:gfigueroa,项目名称:internet-radio-gae,代码行数:36,代码来源:BlobUtils.java


示例3: doPost

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
	String title = req.getParameter("title");

	Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(req);
	BlobKey blobKey = blobs.get("myFile").get(0);
	BlobInfo info = new BlobInfoFactory().loadBlobInfo(blobKey);

	if (blobKey == null) {
		resp.sendRedirect("/admin/resource/add.jsp?error");
	}

	Resource resource = new Resource();
	resource.setTitle(title);
	resource.setBlobKey(blobKey);
	resource.setContentType(info.getContentType());
	resource.setFileName(info.getFilename());
	resource.setSize(info.getSize());

	PersistenceManager pm = PMF.get().getPersistenceManager();
	pm.makePersistent(resource);
	pm.close();

	resp.sendRedirect("/admin/resource/");
}
 
开发者ID:santiagolizardo,项目名称:jerba,代码行数:27,代码来源:AddResourceServlet.java


示例4: getFileInfo

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
@Override
public FileInfo getFileInfo(HttpServletRequest req) {
	Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);
    if (blobs.keySet().isEmpty()) { 
    	throw new RuntimeException("No File found"); 
    }
    Iterator<String> names = blobs.keySet().iterator();
    String blobName = names.next();
    BlobKey blobKey = blobs.get(blobName);
    BlobInfoFactory blobInfoFactory = new BlobInfoFactory();
    BlobInfo blobInfo = blobInfoFactory.loadBlobInfo(blobKey);

    FileInfo fileInfo = new FileInfo();
    fileInfo.setFileName(blobInfo.getFilename());
    fileInfo.setContentType(blobInfo.getContentType());
    fileInfo.setSize(blobInfo.getSize());
    
	return fileInfo;
}
 
开发者ID:Laesod,项目名称:binary-storage,代码行数:20,代码来源:BinaryStorageBOInBlobStoreGAEImpl.java


示例5: RawAttachmentService

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
@Inject
public RawAttachmentService(BlobstoreService blobstoreService, ImagesService imagesService,
    BlobInfoFactory blobInfoFactory,
    @Flag(FlagName.ATTACHMENT_HEADER_BYTES_UPPER_BOUND) int headerBytesUpperBound,
    RandomBase64Generator random64,
    MetadataDirectory metadataDirectory) {
  this.blobstoreService = blobstoreService;
  this.imagesService = imagesService;
  this.blobInfoFactory = blobInfoFactory;
  this.headerBytesUpperBound = headerBytesUpperBound;
  this.random64 = random64;
  this.metadataDirectory = metadataDirectory;
}
 
开发者ID:ArloJamesBarnes,项目名称:walkaround,代码行数:14,代码来源:RawAttachmentService.java


示例6: assignBlobKeys

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
/**
 * Returns a list of blobkeys for multiple blob uploads.
 * If no blob was uploaded, then an empty list is returned.
 * @param req
 * 			: the HTTP Servlet Request from the Servlet
 * @param paramName
 * 			: the name of the HTTP blob parameter
 * @param blobStoreService
 * 			: the blobstore service initialized in the calling servlet
 * @return a list of BlobKeys
 */
public static ArrayList<BlobKey> assignBlobKeys(HttpServletRequest req, String paramName, 
		BlobstoreService blobstoreService) {
	
	ArrayList<BlobKey> finalBlobKeys = new ArrayList<BlobKey>();
	
       java.util.Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(req);
       List<BlobKey> blobKeys = blobs.get(paramName);
       if (blobKeys != null) {
       	for (BlobKey blobKey : blobKeys) {
            final BlobInfo blobInfo = new BlobInfoFactory().loadBlobInfo(blobKey);
            if (blobKey != null) {
            	if (blobInfo.getSize() > 0) {
            		finalBlobKeys.add(blobKey);
            	}
            	else {
            		blobstoreService.delete(blobKey);
            	}
            }
       	}
	}
       else {
       	return null;
       }
       
       return finalBlobKeys;
}
 
开发者ID:gfigueroa,项目名称:internet-radio-gae,代码行数:38,代码来源:BlobUtils.java


示例7: readBlobFully

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
public static byte[] readBlobFully(BlobKey blobKey) {

		BlobstoreService blobstoreService = BlobstoreServiceFactory
				.getBlobstoreService();
		BlobInfo blobInfo = new BlobInfoFactory().loadBlobInfo(blobKey);

		if (blobInfo == null)
			return null;

		if (blobInfo.getSize() > Integer.MAX_VALUE)
			throw new RuntimeException(
					"This method can only process blobs up to "
							+ Integer.MAX_VALUE + " bytes");

		int blobSize = (int) blobInfo.getSize();
		int chunks = (int) Math
				.ceil(((double) blobSize / BlobstoreService.MAX_BLOB_FETCH_SIZE));
		int totalBytesRead = 0;
		int startPointer = 0;
		int endPointer;
		byte[] blobBytes = new byte[blobSize];

		for (int i = 0; i < chunks; i++) {

			endPointer = Math.min(blobSize - 1, startPointer
					+ BlobstoreService.MAX_BLOB_FETCH_SIZE - 1);

			byte[] bytes = blobstoreService.fetchData(blobKey, startPointer,
					endPointer);

			for (int j = 0; j < bytes.length; j++)
				blobBytes[j + totalBytesRead] = bytes[j];

			startPointer = endPointer + 1;
			totalBytesRead += bytes.length;
		}

		return blobBytes;
	}
 
开发者ID:Laesod,项目名称:binary-storage,代码行数:40,代码来源:BinaryStorageBOInBlobStoreGAEImpl.java


示例8: getSize

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
public long getSize() {
  BlobKey key = getKey();
  if (key == null)
    return 0;
  BlobInfo info = new BlobInfoFactory().loadBlobInfo(key);
  if (info == null)
    return 0;
  return info.getSize();
}
 
开发者ID:mwl,项目名称:gwt-upload,代码行数:10,代码来源:FilesApiFileItemFactory.java


示例9: provideBlobInfoFactory

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
@Provides
BlobInfoFactory provideBlobInfoFactory() {
  return new BlobInfoFactory();
}
 
开发者ID:ArloJamesBarnes,项目名称:walkaround,代码行数:5,代码来源:WalkaroundServerModule.java


示例10: doGet

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
/**
    * Respond to servlet GET requests
    */
   public void doGet(HttpServletRequest req, HttpServletResponse resp)
           throws IOException {
   	
    // Lets check the action required by the jsp
    String message = req.getParameter("msg");
    String action = req.getParameter("action");

    if (message.equals("success")) {
    	
    	// We return information about the file in JSON format
    	if (action.equalsIgnoreCase("upload")) {
    		
    		String type = req.getParameter("type");
    		String datastoreObjectKeyString = 
    				req.getParameter("datastoreObjectKey");
    		Key datastoreObjectKey = KeyFactory.stringToKey(datastoreObjectKeyString);
    		BlobKey fileKey = null;
    		String fileKeyString = null;
    		String jsonString = null;
    		
    		// Check type
    		if (type.equalsIgnoreCase("audio_music") || 
    				type.equalsIgnoreCase("audio_voice")) {
    			
    			StationAudio stationAudio = 
    					StationAudioManager.getStationAudio(datastoreObjectKey);
    			
    			fileKey = stationAudio.getStationAudioMultimediaContent();
    		}
    		else if (type.equalsIgnoreCase("image")) {
    			StationImage stationImage = 
    					StationImageManager.getStationImage(datastoreObjectKey);
    			
    			fileKey = stationImage.getStationImageMultimediaContent();
    		}
    		
    		fileKeyString = fileKey.getKeyString();
	    	BlobInfoFactory bif = new BlobInfoFactory();
	    	BlobInfo blobInfo = bif.loadBlobInfo(fileKey);
	    	String fileName = blobInfo.getFilename();
	    	
	    	jsonString = "{" + "\n" +
	    			"\"datastoreObjectKey\":" + "\"" + datastoreObjectKeyString + "\"," + "\n" +
	    			"\"fileKey\":" + "\"" + fileKeyString + "\"," + "\n" +
	    			"\"fileName\":" + "\"" + fileName + "\"\n" +
	    			"}";
	    	
	    	log.info("jsonString: " + jsonString);
	    	
	    	resp.setContentType("application/json;charset=UTF-8");
	    	resp.setCharacterEncoding("UTF-8");
	    	resp.getWriter().println(jsonString);
    	}
    	else if (action.equals("delete")){
    		resp.getWriter().println("File deleted successfully.");
    	}
    }
}
 
开发者ID:gfigueroa,项目名称:internet-radio-gae,代码行数:62,代码来源:BinaryFileUploadServlet.java


示例11: getFileSize

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
private static long getFileSize(BlobKey blobKey) {
    BlobInfoFactory blobInfoFactory = new BlobInfoFactory();
    return blobInfoFactory.loadBlobInfo(blobKey).getSize();
}
 
开发者ID:TEAMMATES,项目名称:teammates,代码行数:5,代码来源:GoogleCloudStorageHelper.java


示例12: finishObjectCreation

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
@Override
public void finishObjectCreation(RawGcsCreationToken token, ByteBuffer chunk, long timeoutMillis)
    throws IOException {
  ensureInitialized();
  Token t = append(token, chunk);

  int totalBytes = 0;

  BlobKey blobKey = getBlobKeyForFilename(t.filename);
  try (WritableByteChannel outputChannel = Channels.newChannel(blobStorage.storeBlob(blobKey))) {
    for (ByteBuffer buffer : inMemoryData.get(t.filename)){
      totalBytes += buffer.remaining();
      outputChannel.write(buffer);
    }
    inMemoryData.remove(t.filename);
  }

  String mimeType = t.options.getMimeType();
  if (Strings.isNullOrEmpty(mimeType)) {
    mimeType = "application/octet-stream";
  }

  BlobInfo blobInfo = new BlobInfo(
      blobKey, mimeType, new Date(), getPathForGcsFilename(t.filename),
      totalBytes);

  String namespace = NamespaceManager.get();
  try {
    NamespaceManager.set("");
    String blobKeyString = blobInfo.getBlobKey().getKeyString();
    Entity blobInfoEntity =
        new Entity(GOOGLE_STORAGE_FILE_KIND, blobKeyString);
    blobInfoEntity.setProperty(BlobInfoFactory.CONTENT_TYPE, blobInfo.getContentType());
    blobInfoEntity.setProperty(BlobInfoFactory.CREATION, blobInfo.getCreation());
    blobInfoEntity.setProperty(BlobInfoFactory.FILENAME, blobInfo.getFilename());
    blobInfoEntity.setProperty(BlobInfoFactory.SIZE, blobInfo.getSize());
    datastore.put(blobInfoEntity);
  } finally {
    NamespaceManager.set(namespace);
  }

  Entity e = new Entity(makeKey(t.filename));
  ByteArrayOutputStream bout = new ByteArrayOutputStream();
  try (ObjectOutputStream oout = new ObjectOutputStream(bout)) {
    oout.writeObject(t.options);
  }
  e.setUnindexedProperty(OPTIONS_PROP, new Blob(bout.toByteArray()));
  e.setUnindexedProperty(CREATION_TIME_PROP, System.currentTimeMillis());
  e.setUnindexedProperty(FILE_LENGTH_PROP, totalBytes);
  datastore.put(null, e);
}
 
开发者ID:GoogleCloudPlatform,项目名称:appengine-gcs-client,代码行数:52,代码来源:LocalRawGcsService.java


示例13: getBlobInfoFactory

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
@Provides
@Singleton
BlobInfoFactory getBlobInfoFactory() {
    return new BlobInfoFactory();
}
 
开发者ID:mikea,项目名称:appengine-java-tools,代码行数:6,代码来源:GaeModule.java


示例14: doPost

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws
    IOException {

  UserService userService = UserServiceFactory.getUserService();
  User user = userService.getCurrentUser();

  Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);
  if (blobs.keySet().isEmpty()) {
    resp.sendRedirect("/?error=" + 
      URLEncoder.encode("No file uploaded", "UTF-8"));
    return;
  }

  Iterator<String> names = blobs.keySet().iterator();
  String blobName = names.next();
  BlobKey blobKey = blobs.get(blobName);

  if (user == null) {
    blobstoreService.delete(blobKey);
    resp.sendRedirect("/?error=" + 
      URLEncoder.encode("Must be logged in to upload", "UTF-8"));
    return;
  }

  BlobInfoFactory blobInfoFactory = new BlobInfoFactory();
  BlobInfo blobInfo = blobInfoFactory.loadBlobInfo(blobKey);

  String contentType = blobInfo.getContentType();
  long size = blobInfo.getSize();
  Date creation = blobInfo.getCreation();
  String fileName = blobInfo.getFilename();

  String title = req.getParameter("title");
  String description = req.getParameter("description");
  boolean isShared = "public".equalsIgnoreCase(req.getParameter("share"));

  try {
    MediaObject mediaObj = new MediaObject(user, blobKey, creation, 
      contentType, fileName, size, title, description, isShared);
    PMF.get().getPersistenceManager().makePersistent(mediaObj);
    resp.sendRedirect("/");
  } catch (Exception e) {
    blobstoreService.delete(blobKey);
    resp.sendRedirect("/?error=" + 
      URLEncoder.encode("Object save failed: " + e.getMessage(), "UTF-8"));
  }
}
 
开发者ID:dougkoellmer,项目名称:swarm,代码行数:48,代码来源:UploadPost.java


示例15: doGet

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
public void doGet(HttpServletRequest req, HttpServletResponse res) 
	throws IOException {
      
BlobInfoFactory bif = new BlobInfoFactory();

BlobKey blobKey = new BlobKey(req.getParameter("file_id"));
      String fileName = bif.loadBlobInfo(blobKey).getFilename();
      
      res.setContentType("text/plain");
  	res.setHeader("Content-Disposition",
                       "attachment; filename=" + fileName);
      
      blobstoreService.serve(blobKey, res);
      
  }
 
开发者ID:gfigueroa,项目名称:internet-radio-gae,代码行数:16,代码来源:FileDownloadServlet.java


示例16: doGet

import com.google.appengine.api.blobstore.BlobInfoFactory; //导入依赖的package包/类
public void doGet(HttpServletRequest req, HttpServletResponse res) 
			throws IOException {
        
		BlobInfoFactory bif = new BlobInfoFactory();
		
		BlobKey blobKey = new BlobKey(req.getParameter("file_id"));
        String fileName = bif.loadBlobInfo(blobKey).getFilename();
        
        res.setContentType("audio/mpeg");
//    	res.setHeader("",
//                         "attachment; filename=" + fileName);
         
        blobstoreService.serve(blobKey, res);
        
    }
 
开发者ID:gfigueroa,项目名称:internet-radio-gae,代码行数:16,代码来源:AudioStreamingServlet.java



注:本文中的com.google.appengine.api.blobstore.BlobInfoFactory类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java IPacket类代码示例发布时间:2022-05-21
下一篇:
Java ResourceAdapter类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap