我们的应用程序托管在谷歌的Google应用程序引擎上,我们有一个要求,我们希望在html某处存储献血者鉴赏证书(文件).
因此,我们可以使用Google blob商店或Google云存储.我知道使用gae for Java可以实现这两种解决方案
但是,我们面临的问题是决定使用哪一个.这两种方法的优点和缺点是什么?
我们是非盈利的,不能付出很多.
我不知道html是如何工作的.我想要做的是与以下内容完全类似,但在android上
<body>
<form action="<%= some_url %>" method="post" enctype="multipart/form-data">
<input type="file" name="myFile">
<input type="submit" value="Submit">
</form>
</body>Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码 -
private static void postToUrl(String url_to_upload_on,
String file_name_with_ext, byte[] byteArray) {
String attachmentName = "file";
String attachmentFileName = file_name_with_ext;
String crlf = "\r\n";
String twoHyphens = "--";
String boundary = "*****";
try{
URL url = new URL(url_to_upload_on);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty(
"Content-Type", "multipart/form-data;boundary=" + boundary);
DataOutputStream request = new DataOutputStream(
connection.getOutputStream());
request.writeBytes(twoHyphens + boundary + crlf);
request.writeBytes("Content-Disposition: form-data; …Run Code Online (Sandbox Code Playgroud) 我正在使用eclipse插件开发一个app-engine连接的android项目.该应用程序的一个方面是允许用户Alpha将图片发送给用户Bravo.为此,我有以下设置:
用户Alpha发布:
用户Bravo获得:
这个设置需要两(2)分钟,从我的Android应用程序发送图像到我可以在blob疼痛中看到它.不用说这是完全不可接受的.
我的服务器通过以下代码以编程方式处理图像:
public static BlobKey toBlobstore(Blob imageData) throws FileNotFoundException, FinalizationException, LockException, IOException {
if (null == imageData)
return null;
// Get a file service
FileService fileService = FileServiceFactory.getFileService();
// Create a new Blob file with mime-type "image/png"
AppEngineFile file = fileService.createNewBlobFile("image/jpeg");// png
// Open a channel to write to it
boolean lock = true;
FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock);
// This time we write to the channel directly
writeChannel.write(ByteBuffer.wrap
(imageData.getBytes()));
// …Run Code Online (Sandbox Code Playgroud) google-app-engine android blobstore gae-eclipse-plugin google-cloud-endpoints
我只想清理(dump,zap,del .)Azure Blob容器.我怎样才能做到这一点?
注意:容器由IIS(运行Webrole)日志(wad-iis-logfiles)使用.
我有一个应用程序,其中每个特定类型的DataStore实体可以有许多与之关联的照片.(想象一下汽车销售网站 - 一辆车有多张照片)
最初由于所有数据都来自其他网站,我只能将照片存储为DataStore Blob,但现在可以以编程方式编写BlobStore项目,我想知道是否应该更改我的设计并存储照片作为BlobStore项目?
所以,问题是:
将照片存储在Blobstore中,或者作为Blob存储在数据存储区中"更好"吗?两者都是可能的解决方案,但这将是更好/更便宜/最有效的方法,为什么?
我也搜索了谷歌,stackoverflow和其他来源.但到目前为止没有运气.
我正在开发一个GAE应用程序,后端是Java,另一端是android.现在服务器是在本地机器上设置的,它是由android通过wifi使用ip地址访问的.
在尝试上传图片时,我首先请求uploadUrl,我成功了.唯一的问题我看到有而不是PC的IP地址,它有个人电脑名称.所以现在我将pc名称替换为ip地址.
在我实际尝试发布多部分图像文件之后,它会抛出异常 java.lang.IllegalStateException: Must call one of set*BlobStorage() first
现在我无法通过这个障碍.我看到了可能的原因
请帮帮我.对此严重困扰.非常感谢提前
更新 - 2015年12月4日
SEVERE: javax.servlet.ServletContext log: unavailable
java.lang.IllegalStateException: Must call one of set*BlobStorage() first.
at com.google.appengine.api.blobstore.dev.BlobStorageFactory.getBlobStorage(BlobStorageFactory.java:24)
at com.google.appengine.api.blobstore.dev.UploadBlobServlet.init(UploadBlobServlet.java:102)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440)
at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:127)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) …Run Code Online (Sandbox Code Playgroud) 我有一个以前通过标准Google App Engine create_upload_url()过程上传的BlobKeys数据库,每个上传都通过设置gs_bucket_name参数转到同一个Google Cloud Storage存储桶.
我想要做的是能够解码现有的blobkeys,以便我可以获得他们的Google云端存储文件名.我知道我可以使用FileInfo类中的gs_object_name属性,除了:
您必须在上传处理程序中自行保存gs_object_name,否则此数据将丢失.(GCS中对象的其他元数据自动存储在GCS中,因此您无需将其保存在上传处理程序中.
含义gs_object_name属性仅在上传处理程序中可用,如果我当时没有保存它,那么它就丢失了.
此外,create_gs_key()不会起作用,因为它取而代之的是google存储文件名并创建一个blobkey.
那么,我如何才能将之前通过应用引擎上传到Google云存储桶的blobkey获取并获取其Google云端存储文件名?(蟒蛇)
我陷入困境..我使用tipfy作为框架在scribd商店和blobstore上传文件.我的webform with action不是由blobstore.create_upload_url创建的(我只是使用url_for('myhandler')).我这样做是因为如果我使用blobstore处理程序解析了POST响应,我就不能使用普通的python-scribd api将文件上传到scribd store.现在我有工作的scribd saver:
class UploadScribdHandler(RequestHandler, BlobstoreUploadMixin):
def post(self):
uploaded_file = self.request.files.get('upload_file')
fname = uploaded_file.filename.strip()
try:
self.post_to_scribd(uploaded_file, fname)
except Exception, e:
# ... get the exception message and do something with it
msg = e.message
# ...
# reset the stream to zero (beginning) so the file can be read again
uploaded_file.seek(0)
#removed try-except to see debug info in browser window
# Create the file
file_name = files.blobstore.create(_blobinfo_uploaded_filename=fname)
# Open the file and write to it
with files.open(file_name, …Run Code Online (Sandbox Code Playgroud) 我想用一个简单的任务来启动一个云计算项目:
我在想ffmpeg作为一个集成在一个外部命令行工具Java/Google App engine Application.由于很难确定框架的局限性,有人可以告诉我这是否可行?
先感谢您!