java - 如何在 GCS bucket java 上创建新文件

标签 java google-cloud-datastore google-cloud-storage

我正在尝试在我的一个谷歌云存储桶中创建一个新文件。 这是我写的代码:

    InputStream stream = new ByteArrayInputStream(report.getBytes(StandardCharsets.UTF_8.name()));
    GcsFilename filename = new GcsFilename(BUCKET_NAME, csvFileName);
    GcsFileOptions options = GcsFileOptions.getDefaultInstance();
    GcsOutputChannel outputChannel = gcsService.createOrReplace(filename, options);
    copy(stream, Channels.newOutputStream(outputChannel));

代码运行没有错误,但桶仍然是空的。 我 99% 确定我编写的代码是正确的(它在另一个项目中对我有用),但问题出在 GCS 存储桶设置上。 谢谢。

最佳答案

我认为 Raghuram Kasyap 链接的问题应该有所帮助,但以防万一您想使用 NIO Filesystem Provider for Google Cloud Storage ,它会像这样:

InputStream stream = new ByteArrayInputStream(report.getBytes(StandardCharsets.UTF_8.name()));
try (FileSystem fs = CloudStorageFileSystem.forBucket(BUCKET_NAME)) {
    Path dest = fs.getPath(filename);
    Files.copy(stream, dest);
}

上面的链接有你需要添加到项目中的依赖;它是 google-cloud-java 的一部分。我尝试了上面的代码,它对我有用。

关于java - 如何在 GCS bucket java 上创建新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49851797/

相关文章:

go - 为用户可以编辑的页面(例如维基百科/stackoverflow 页面)设计数据存储架构

javascript - 如何使用 Node Js 编写和检索临时二进制文件?

json - 使用 spark-submit 从 google dataproc spark cluster 读取 GCP 中的 JSON(zipped .gz) 时,未使用所有执行程序

java - JFrame 中的背景图像

google-app-engine - Google Appengine(GAE)::使用GAE memcached时如何防止狗堆效应?

database - GAE数据存储同时更新记录的字段

java - 如何在本地开发服务器上启用 Google Cloud Storage?

java - 在不使用 if 条件的情况下计算二叉树中的叶子

Java 矩形类面积/周长输出0

java - 什么是 ASCII 艺术文档的流行 JavaDoc 实践?