如何从Google云存储桶中获取对象

时间:2015-11-26 04:32:38

标签: android google-cloud-storage

我在下面的代码中使用了google云存储桶中的get对象。我在getMetadata中有错误。请问任何人在这里告诉我什么是getMetadata以及如何得到它?

Storage.Objects.Get getObject = client.objects().get(bucketName, objectname);

            if (getMetadata == true) {
              StorageObject object = getObject.execute();

            } else {
              // Downloading data.
              ByteArrayOutputStream out = new ByteArrayOutputStream();
              // If you're not in AppEngine, download the whole thing in one request, if possible.
              getObject.getMediaHttpDownloader().setDirectDownloadEnabled(true);
              getObject.executeMediaAndDownloadTo(out);
            }

1 个答案:

答案 0 :(得分:0)

看起来你正在通过sample code snippet;在该片段中,getMetadata只是指您自己选择是否要查看对象的元数据,如大小,内容类型,创建时间等,或者您是否确实要下载对象的内容。

在使用它的实际代码中,您可能不会使用任何getMetadata变量以这种方式构造它。相反,您应该只使用在每种特定情况下您需要的条件分支中的代码。例如,如果您只想获取对象的大小,以便可以在某处显示字节数而无需实际下载:

Storage.Objects.Get getObject = client.objects().get(bucketName, objectname);
StorageObject object = getObject.execute();
System.out.println("Size is: " + object.getSize().longValue());

或者,如果您只想将内容转储到System.out

Storage.Objects.Get getObject = client.objects().get(bucketName, objectname);
getObject.getMediaHttpDownloader().setDirectDownloadEnabled(true);
getObject.executeMediaAndDownloadTo(System.out);