我需要帮助,因为我需要在现有代码中集成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。所以我想用它。但我不知道如何将其与现有代码集成。你能救我吗?
答案 0 :(得分:0)
好的,我找到了方法。
object.uploadObject(Files.newInputStream(Files.write(this.path, (repo.toString() + "\n").getBytes(), StandardOpenOption.APPEND)));