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