我有一个GCS存储桶,我上传.tar.gz文件。只要有新文件上传,Google PUB-SUB就会向Kubernetes Engine发送应用通知。应用程序具有侦听通知的侦听器,并且必须读取.tar.gz文件。
我已经设置了从GCS到APP的主题/订阅者通知。通知到来时,我无法确定如何阅读.tar.gz文件。
我尝试下面的代码来阅读.tar.gz,但它不是我应该做的。它给出了不可读的字符和我没有解压缩它。我使用了google-cloud-storage lib。
if(map.containsValue("OBJECT_FINALIZE") ){
Storage storage = StorageOptions.newBuilder()
.setProjectId(projectId)
.setCredentials(creaCredentialsProvider.getCredentials()).build().getService();
try(ReadChannel reader = storage.reader(archiveMessage.getBucket(), archiveMessage.getName())){
ByteBuffer bytes = ByteBuffer.allocate(64 * 1024);
while (reader.read(bytes) > 0) {
bytes.flip();
System.out.println((char)bytes.get());
bytes.clear();
}
}
}
我查看了持久磁盘&转码并不直接看。 任何有关我应该去的方向的帮助或代码样本都非常感谢。
答案 0 :(得分:0)
Google Cloud Platform中的转码功能不具备可提供两级解压缩的功能,尤其是tar.gz文件。但是,按照此Stackoverflow link中提供的响应,似乎有一种编程的方法来解决此问题。您将使用tarfile.TarFile.extractfile方法来绕过不得不提取到磁盘的步骤