2
我试图解释上传文件时Google Drive REST API的文档。对于iOS和Android,文档似乎都要求在两个地方指定上传的MIME类型:上传的元数据和媒体内容本身。是否重复在Google Drive API中上传所需的MIME类型?
举例来说,这里是我是如何被上传在Android的一个文件:
final File fileMetadata = new File()
.setName("Sample File.mytikkun")
.setMimeType("application/vnd.zigzagworld.sample")
.setParents(Collections.singletonList(rootFolderId));
final ByteArrayContent content = ByteArrayContent.fromString(
"application/vnd.zigzagworld.sample",
"Sample data");
mDriveService
.files()
.create(fileMetadata, content)
.setFields("id")
.execute();
而这里的iOS中/斯威夫特同样的事情:
let metaData = GTLRDrive_File()
metaData.name = "Sample File.mytikkun"
metaData.mimeType = "application/vnd.zigzagworld.sample"
metaData.parents = [ prefs.rootFolderId! ]
let content = GTLRUploadParameters(
data: "Sample Data".data(using: String.Encoding.utf8)!,
mimeType: "application/vnd.zigzagworld.sample")
let query = GTLRDriveQuery_FilesCreate.query(
withObject: metaData,
uploadParameters: content)
query.fields = "id"
service.executeQuery(query) { ticket, file, error in
// ...
}
上面的代码工作,但MIME类型的重复看起来像是一种代码味道。有什么方法可以避免它?
这很有道理。如果我忽略元数据中的MIME类型,Drive会从内容中挑选MIME类型? (我想我可以试着找出答案,但这种方法刚刚发生在我身上,而且询问似乎比试验更容易。) –
它可能会做,但由于这是一种无证的行为,它可能会改变。此外,您还可以通过提供价值来冒着图书馆“帮助”您的风险。所以,imho在指定目标MIME类型时要更加明确。 – pinoyyid