Tag: 谷歌云存储

InvocationTargetException使用appengine-gcs-client-0.5 dev_appserver存储文件

我正在使用appengine-gcs-client-0.5并在调用GcsService.createOrReplace和GcsOutputChannel.close时在dev_appserver中看到InvocationTargetExceptions。 似乎对storeBlob的调用没有适当的权限,因为appserver在com.google.appengine.api.blobstore.dev.FileBlobStorage.storeBlob中获取了AccessControlException: java.security.AccessControlException: access denied (“java.io.FilePermission” “/tmp/1440435923000-0/encoded_gs_key:” “write”) 为了让这个工作,我需要做什么?

无法使用GCS客户端库+ java将文件从GAE项目上传到Google云存储

我正在尝试使用新的Gcs客户端库从我的GAE应用程序上传图像/文件到谷歌云存储。 这是代码片段 GcsService gcsService = GcsServiceFactory.createGcsService(new RetryParams.Builder() .initialRetryDelayMillis(10) .retryMaxAttempts(10) .totalRetryPeriodMillis(15000) .build()); GcsFilename filename = new GcsFilename(BUCKETNAME, FILENAME); GcsFileOptions options = new GcsFileOptions.Builder().mimeType(“text/html”).acl(“public-read”).build(); GcsOutputChannel writeChannel = gcsService.createOrReplace(filename,options); PrintWriter out = new PrintWriter(Channels.newWriter(writeChannel, “UTF8”)); out.println(“The woods are lovely dark and deep.”); out.println(“But I have promises to keep.”); out.flush(); writeChannel.waitForOutstandingWrites(); writeChannel.write(ByteBuffer.wrap(“And miles to go before I sleep.”.getBytes())); writeChannel.close(); […]

通过appengine将文件上传到Google云端存储

我正在尝试将文件上传到Google云端存储。 我的Servlet代码是 public class UploadFile extends HttpServlet { private final String BUCKET = “XXXXXXXXX”; private boolean isMultipart; private String filePath; private int maxFileSize = 5 * 1024 * 1024; private int maxMemSize = 5 * 1024 * 1024; private File file ; public void init( ){ // Get the file location where it would be […]

如何使用Java从Google云端存储中读取文件

我想使用Java从Google Cloud存储中读取文件。 以下链接没有用,因为我不使用HttpServletRequest和HttpServletResponse。 使用java从谷歌云存储中读取文件 有没有其他方法可以实现这一目标? 我正在写一个简单的独立程序作为POC

从Android访问云存储

我一直无法找到有关如何从Android应用程序使用云存储的任何具体文档。 我确实遇到了来自Google Cloud SDK的这个客户端库 ,但是遇到了很多很多问题并且还没有让它运行起来。 我在上面的链接中添加了以下代码: build.gradle : compile group: ‘com.google.cloud’, name: ‘google-cloud-storage’, version: ‘0.9.3-beta’ 然后我添加了一些简单的代码,虽然这与这个问题并不相关,因为我已经能够运行我的应用程序并添加了上面的依赖项: 在活动中: Storage storage = StorageOptions.getDefaultInstance().getService(); Page buckets = storage.list(); Iterator bucketIterator = buckets.iterateAll(); while (bucketIterator.hasNext()) { Bucket bucket = bucketIterator.next(); Log.d(TAG, “Bucket name: ” + bucket.getName()); } 解决了无数的依赖问题(与Joda冲突,Netty, DuplicateFileException来自gradle等)我能够构建项目,尽管有以下错误: Warning:WARNING: Dependency org.apache.httpcomponents:httpclient:4.0.1 is ignored for debug as it may […]

为Google Cloud Storage API提供凭据

我正在尝试组建一个用于测试Google云端存储的hello world程序。 我的目标是拥有一个最简单的程序,只需将硬编码文件上传到云存储。 我一直在互联网上搜索基础教程,但我能找到的最接近的是从App Engine使用云存储的指南 。 我把这个程序放在一起: import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.Arrays; import com.google.cloud.storage.Acl; import com.google.cloud.storage.Acl.Role; import com.google.cloud.storage.Acl.User; import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; public class Main { public static void main(String[] args) throws FileNotFoundException{ FileInputStream fileInputStream = new FileInputStream(“my-file.txt”); Storage storage = StorageOptions.getDefaultInstance().getService(); BlobInfo blobInfo = storage.create( BlobInfo .newBuilder(“my-cloud-storage-bucket”, “my-file.txt”) .setAcl(new […]

将Android应用中的照片上传到Google云端存储/应用引擎 – 非法字符’_’

我在将Android应用中的照片上传到GCS时遇到问题。 我可以上传文本文件而不上传照片。 我尝试了各种mime类型以及不同的Base64编码方法(decodeBase64,encodeBase64URLSafeString等…) 我觉得我真的很亲密。 这是我收到的错误消息: com.google.appengine.repackaged.org.codehaus.jackson.JsonParseException:base64内容中的非法字符’_’(代码0x5f)[来源:N / A; line:-1,column:-1] 我看了编码的字符串,那里没有任何’_’。 Android代码: Activity: protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case 0: { try { InputStream is = getContentResolver().openInputStream(data.getData()); tvMessage.setText(“Done!”); byte[] b = getBytes(is); gaeTask task = new gaeTask(); PhotoObject p = new PhotoObject(); p.encodeBytes(b); p.setName(“picturejpg.jpg”); task.execute(p); } } AsnycTask: protected […]

获取云存储(Java)中的文件列表

是否有可能使用GAE SDK列出我的Google云端存储分区上的所有文件? 我知道Python SDK支持这样的function,但我在Java SDK中找不到类似的function。 如果不可用,是否会在Java SDK的未来版本中添加?

如何使用Java App Engine正确上传(映像)文件到Google云端存储?

我有一个谷歌应用引擎实例,使用java(sdk 1.9.7),它连接到谷歌云存储。 我能够成功接收请求的输入并将其输出到我的Google云存储桶中的文件/对象。 这是我的servlet代码: public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { // read the input stream byte[] buffer = new byte[1024]; List allBytes = new LinkedList(); InputStream reader = req.getInputStream(); while(true) { int bytesRead = reader.read(buffer); if (bytesRead == -1) { break; // have a break up with the loop. } else if […]

为什么我无法通过应用引擎将文件上传到大于100KByte的Google云端存储?

我的项目只包含简单的文件上传表单和重定向来查看它。 我可以上传任何小于50 KB的文件但是当我上传一些大于100 KB的文件时,它会从应用引擎中抛出IO Exception。 我不确定问题出在哪里。 有谁知道如何通过应用引擎中的表单发布来增加我可以上传到Google云端存储的文件大小? 文件大小正确小于10 MB是可以的。 任何代码片段都会受到高度赞赏。 谢谢。 java.io.IOException at com.google.appengine.api.files.FileServiceImpl.translateException(FileServiceImpl.java:615) at com.google.appengine.api.files.FileServiceImpl.makeSyncCall(FileServiceImpl.java:588) at com.google.appengine.api.files.FileServiceImpl.append(FileServiceImpl.java:535) at com.google.appengine.api.files.FileServiceImpl.append(FileServiceImpl.java:289) at com.google.appengine.api.files.FileWriteChannelImpl.write(FileWriteChannelImpl.java:57) at com.google.appengine.api.files.FileWriteChannelImpl.write(FileWriteChannelImpl.java:46) at java.nio.channels.Channels.write(Channels.java:80) at java.nio.channels.Channels.access$000(Channels.java:64) at java.nio.channels.Channels$1.write(Channels.java:151) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) at storefile.StorageService.storeFile(StorageService.java:46) at storefile.UploadServlet.doPost(UploadServlet.java:46) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 以下是我的代码:upload.html Hello App Engine Hello App Engine! File uploadServlet.java import java.io.BufferedInputStream; import java.io.IOException; […]