使用mgo / golang将文件块上传到MongoDb

时间:2017-07-27 10:14:49

标签: file go gridfs mgo

在我的情况下,我有一个逻辑,应该上传大块文件,例如,如果我有一个大小为10mb的文件,我需要发送PUT请求与1mb文件块,10次,但mgo({{3} })不允许打开文件进行编写

    func UploadFileChunk(rw http.ResponseWriter,rq *http.Request) {


    fileid:= mux.Vars(rq)["fileid"]

    rq.ParseMultipartForm(10000)
    formFile:=rq.MultipartForm.File["file"]

    content,err:= formFile[0].Open()

    defer content.Close()


    if err != nil {
        http.Error(rw,err.Error(),http.StatusInternalServerError)
        return
    }

    file,err:= db.GridFS("fs").OpenId(bson.ObjectIdHex(fileid))

    if err != nil {
        http.Error(rw,err.Error(),http.StatusInternalServerError)
        return
    }

    data,err := ioutil.ReadAll(content)

    n,_:= file.Write(data)



    file.Close()
    // Write a log type message
    fmt.Printf("%d bytes written to the Mongodb instance\n", n)
}

所以我想每次都写一个新的块但1)mgo不允许打开文件写2)我不知道这种方式是好的吗?

0 个答案:

没有答案