Google 驱动器 API,元数据
Google Drive API, Meta-Data
我正在将文件上传到 Google 驱动成功,但我的元数据似乎没有正确返回给我。
protected File insertFile(Drive service, List<String> parentIds, com.google.drive.FileContent fileContent, File googleFile)throws IOException {
// Set the parent folder.
if (parentIds != null && parentIds.size() > 0) {
List<ParentReference> parentReferences = new ArrayList<ParentReference>();
for (String parentId : parentIds ){
parentReferences.add(new ParentReference().setId(parentId));
}
googleFile.setParents( parentReferences );
}
try {
googleFile = service.files().insert(googleFile, fileContent).execute();
// Uncomment the following line to print the File ID.
System.out.println("File ID: " + googleFile.getId());
return googleFile;
}
catch (IOException e) {
System.out.println("An error occured: " + e);
return null;
}
}
上面是我的插入语句,下面是我发送的关于文档的详细信息。
{description=XXXXXXX Invoice, fileExtension=pdf,
indexableText={text=XXXXXXX Invoice}, labels={restricted=false},
mimeType=application/pdf, parents=[{id=0B_owsnWRsIy7S1VsWG1vNTYzM1k}],
properties=[{key=DocumentType, value=11}], title=XXXXXXX Invoice}
当我使用此代码获取同一文档时
protected InputStream downloadFile(Drive service, File file)throws IOException {
if (file.getDownloadUrl() != null && file.getDownloadUrl().length() > 0) {
HttpResponse resp =
service.getRequestFactory().buildGetRequest(new GenericUrl(file.getDownloadUrl()))
.execute();
return resp.getContent();
}
else {
// The file doesn't have any content stored on Drive.
return null;
}
}
我得到的大部分文本减去可索引的文本和文件扩展名,是否正确(不想显示,因为它包含大量杂乱无章的信息)?
这里有两个不同的问题。
1) fileExtension
是一个 read-only 字段,因此它被忽略了。检索资料时,是从原文title/filename中推导出来的。由于您的标题不包含“.pdf”,因此它被设置为空。
2) indexableText
是 write-only 因为我们不允许您在设置后检索它;它仅由驱动器后端用于服务搜索查询。
您可以阅读有关 file resource in our documentation 的不同元数据属性的更多信息。
我正在将文件上传到 Google 驱动成功,但我的元数据似乎没有正确返回给我。
protected File insertFile(Drive service, List<String> parentIds, com.google.drive.FileContent fileContent, File googleFile)throws IOException {
// Set the parent folder.
if (parentIds != null && parentIds.size() > 0) {
List<ParentReference> parentReferences = new ArrayList<ParentReference>();
for (String parentId : parentIds ){
parentReferences.add(new ParentReference().setId(parentId));
}
googleFile.setParents( parentReferences );
}
try {
googleFile = service.files().insert(googleFile, fileContent).execute();
// Uncomment the following line to print the File ID.
System.out.println("File ID: " + googleFile.getId());
return googleFile;
}
catch (IOException e) {
System.out.println("An error occured: " + e);
return null;
}
}
上面是我的插入语句,下面是我发送的关于文档的详细信息。
{description=XXXXXXX Invoice, fileExtension=pdf, indexableText={text=XXXXXXX Invoice}, labels={restricted=false}, mimeType=application/pdf, parents=[{id=0B_owsnWRsIy7S1VsWG1vNTYzM1k}], properties=[{key=DocumentType, value=11}], title=XXXXXXX Invoice}
当我使用此代码获取同一文档时
protected InputStream downloadFile(Drive service, File file)throws IOException {
if (file.getDownloadUrl() != null && file.getDownloadUrl().length() > 0) {
HttpResponse resp =
service.getRequestFactory().buildGetRequest(new GenericUrl(file.getDownloadUrl()))
.execute();
return resp.getContent();
}
else {
// The file doesn't have any content stored on Drive.
return null;
}
}
我得到的大部分文本减去可索引的文本和文件扩展名,是否正确(不想显示,因为它包含大量杂乱无章的信息)?
这里有两个不同的问题。
1) fileExtension
是一个 read-only 字段,因此它被忽略了。检索资料时,是从原文title/filename中推导出来的。由于您的标题不包含“.pdf”,因此它被设置为空。
2) indexableText
是 write-only 因为我们不允许您在设置后检索它;它仅由驱动器后端用于服务搜索查询。
您可以阅读有关 file resource in our documentation 的不同元数据属性的更多信息。