我有一个firebase帐户,我想以编程方式上传一些照片到firebase存储。为此,我使用了google cloud java storage API。我配置权限和其他权限。我可以成功地创建桶,斑点。然而,当我试图上传一张图片时,要么它的大小为0,要么它无法下载(不生成URL)。下面是我使用的代码;
Storage storage = StorageOptions.newBuilder().setProjectId("firebaseId")
.setCredentials(ServiceAccountCredentials.fromStream(new FileInputStream("jsonFileFor Authentication")))
.build()
.getService();
String blobName = "a.jpg";
BlobId blobId = BlobId.of(bucket.getName(), blobName);
InputStream inputStream = new FileInputStream(new File("a.jpg"));
//BlobInfo blobInfo = BlobInfo.builder(blobId).contentType("image/jpeg").build();
BlobInfo blobInfo = BlobInfo.builder(bucket.getName(), "a.jpg").contentType("image/jpeg").build();
try (WriteChannel writer = storage.writer(blobInfo)) {
byte[] buffer = new byte[1024];
int limit;
try {
while ((limit = inputStream.read(buffer)) >= 0) {
writer.write(ByteBuffer.wrap(buffer, 0, limit));
}
} catch (Exception ex) {
// handle exception
}finally {
writer.close();
}
}
任何建议都很感激。问候。
Firebase Admin SDK文档清楚地说明,服务帐户对存储帐户具有完全的范围控制,但由于传输令牌源为nil,因此正确引导凭据似乎有些错误。
谷歌云存储中的文件更改需要多长时间才能传播? 我遇到了一个非常令人沮丧的问题,我改变了一个文件的内容,并通过gsutil重新上传,但是这个改变几个小时后才显示出来。有没有办法强制一个改变的文件立即传播所有内容? 如果我查看谷歌云存储控制台中的文件,它会看到新文件,但如果我点击公共网址,它是旧版本,在某些情况下,是2个版本前的版本。 有没有我没有设置的标题? 编辑: 我尝试了,但它没有帮助,但也许旧
我注意到谷歌云存储没有提供任何移动SDK,所以我们可以用来与存储通信,那么我们需要创建自定义API来进行通信吗?我看到有一种方法可以在现有的Firebase项目中添加额外的桶,这会在Firebase中起作用吗?或者我们有没有一种方法可以将Firebase bucket添加到谷歌云存储中?
我在Google App Engine上使用Django 1.5,并尝试将文件上传到Google Cloud Storage。我正在使用gcs库,并编写了一个自定义文件上传处理程序,我已在settings.py注册为唯一的文件上传器。我可以在开发环境中的blostore查看器中看到我的文件被正确上传,但一旦在views.py中调用form.save(),我就会抛出异常,说它是只读文件系统?我知道G
我正在运行基于Firebase实时数据库和Firebase Storage的网络应用程序。 我需要通过Python google云存储库每小时将新图像上传到Firebase google bucket。这是文件。 我的图片上传代码(img_src路径正确): 图像似乎已成功上传,但在Firebase存储中手动查看时,图像不会加载。所有图像的规格看起来都是正确的。请将手动上传图像(加载良好)的规格与
我在本地开发服务器上运行代码,但使用在项目上配置的GCS默认桶名。 Python 2.7版