java - 如何使用 JOSS 在 OpenStack 容器上写入文件

标签 java openstack openstack-swift

我需要帮助,因为我需要将 JOSS 集成到现有代码中。我的代码使用了 Java 8 的 Consumer 功能。

Consumer<? super GHRepository> action = repo -> {
            try {
                if(github.getRateLimit().remaining > 0) {
                    Files.write(this.path, (repo.toString() + "\n").getBytes(), StandardOpenOption.APPEND);
                    totalIteration++;
                } else {
                    logger.info("Time to pause for " + (github.getRateLimit().reset.getTime() -  new Date().getTime()));
                    //wait until rate limit is ok.
                    do {
                        Thread.sleep(60000);
                    } while(github.getRateLimit().reset.after(new Date()));

                }
            } catch (Exception e) {
                logger.error("Erreur d'écriture dans le fichier : " + e.getMessage());
            }
        };

此代码工作正常,但计算机上的可用磁盘空间不足。所以我需要直接在 OpenStack 容器上写入文件。

我在文档中读到JOSS使用此函数来上传文件。

   StoredObject object = container.getObject("dog.png");
   object.uploadObject(new File("/dog.png"));

这是上传已写入文件的方法。但我需要将文件直接写入容器上。 uploadObject函数可以接收一个InputStream作为参数。所以我想用它。但我不知道如何将它与我现有的代码集成。你能帮我吗?

最佳答案

好的,我找到路了。

object.uploadObject(Files.newInputStream(Files.write(this.path, (repo.toString() + "\n").getBytes(), StandardOpenOption.APPEND)));

关于java - 如何使用 JOSS 在 OpenStack 容器上写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31400072/

相关文章:

openstack - 如何在openstack中获取Auth-Token

Java 单元测试 : the easiest way to test if a callback is invoked

java - 存储无向图的最有效方法是什么?

java - JClouds 和 OpenStack : IllegalStateException: Expected BEGIN_ARRAY but was STRING

python - 使用 OpenStack API 时出现未经授权的错误,无法从 keystone 获取身份验证 token

java - 是否可以将文件从 Java 服务器流式传输到 OpenStack Swift?

cloud - 为什么 Swift 的容器和对象没有从文件系统中删除?

java - 在 ios 应用程序中收到授权码时尝试从后端服务器交换授权码时的 Redirect_uri

java - 在dispatcher-servlet.xml中添加了 "mvc:resources"标签来添加js和css,它给出了HTTP Status 404

javascript - OpenStack Horizo​​n 仪表板(Folsom 版本)js 构建器