Google drive api 谷歌在导入文档时不遵守mimetype

Google drive api 谷歌在导入文档时不遵守mimetype,google-drive-api,Google Drive Api,如果我使用google drive V3创建api上载文件并提供合法的mime类型(application/vnd.google-apps.drawing或application/vnd.google-apps.sheet),google将忽略我的mime类型并创建文档,或者给我一个错误 例如,应该可以将ODT电子表格上传到google工作表,但它会将其变成一个文档。似乎没有任何方法可以洞察幕后应用了什么样的启发式 我试图在评论中添加这一点,但它只允许一些字符。这是我最新的理解 我通过创建没有任

如果我使用google drive V3创建api上载文件并提供合法的mime类型(application/vnd.google-apps.drawing或application/vnd.google-apps.sheet),google将忽略我的mime类型并创建文档,或者给我一个错误

例如,应该可以将ODT电子表格上传到google工作表,但它会将其变成一个文档。似乎没有任何方法可以洞察幕后应用了什么样的启发式

我试图在评论中添加这一点,但它只允许一些字符。这是我最新的理解

我通过创建没有任何内容的工作表,然后使用update方法添加内容,解决了通过create方法创建电子表格失败的问题。我相信createapi中存在bug

我在图形的创建/更新api方面仍然存在问题。我无法使用jpeg或png作为输入创建任何类型的图形。以下是一些示例代码:

func GoogleComment(actContext activity.Context,
    log logger.Logger) (map[string]interface{}, error) {
    srv, err := getSAService(actContext, log, true) //get a *drive.Service
    if err != nil {
        return nil, err
    }
    var filesResource drive.File
    filesResource.Name = "somename"
    filesResource.MimeType = "application/vnd.google-apps.drawing"
    filesResource.Description = "some description"
    filesCreateCall := srv.Files.Create(&filesResource)
    filesResource.Parents = strings.Split(parents, "parentfoldera,parentfolderb") //fileids in the real world

    var outputObj map[string]interface{}
    text, _ := getInputVar(input, TEXT, false)
    imageBytes, _ := ioutil.ReadFile("some jpeg image file")
    filesCreateCall.Media(bytes.NewReader(imageBytes))
    filesResourceResult, err := filesCreateCall.Fields("*").Do()
    if err != nil {  
        return nil, fmt.Errorf("GoogledocsCreate failed to update file for reason: %s", err)
    }

}
这总是返回错误:错误400:错误请求,错误请求

我在这里读到: 图纸进口商只了解WMF文件,这些文件是windoze专有的,对我没有任何用处。 思想? wcn


我希望能够通过api上传内容,并对将创建的文档类型有一点确定。

您的mime类型应该是源文档,而不是目标Google文档。因此,例如,OpenOffice.ods电子表格将是“application/vnd.oasis.opendocument.spreadsheet”。

对不起。在你的问题中,我无法理解
上传文件的
文件
。如果您正试图上传以Google文档形式显示的MIMEType文件,您可以这样做。因此,当您提供当前脚本时,我认为它将帮助用户考虑您的解决方案。要转换文档,请在调用的可选参数中包含带有布尔值
true
convert
。我尝试了两种方法,但都无法获得所需的行为。例如,当使用text/plain时,它将始终生成一个文档。如果我想让它制作电子表格或演示文稿呢?如果你想制作电子表格,请将文本格式化为CSV并使用“text/CSV”。对演讲不太确定。