noob
Golang和Sinatra人在这里。我入侵了Sinatra应用程序,以接受从HTML表单发布的上传文件,并通过GridFS将其保存到托管的MongoDB数据库中。这似乎工作正常。我正在使用mgo驱动程序在Golang中编写相同的应用程序。
从功能上来说,它工作正常。但是在Golang代码中,我将文件读入内存,然后使用mgo将文件从内存写入MongoDB。这似乎比我同等的Sinatra应用要慢得多。我感觉到Rack和Sinatra之间的交互不会执行此“中间”或“临时”步骤。
这是我的Go代码的片段:
func uploadfilePageHandler(w html" target="_blank">http.ResponseWriter, req *http.Request) {
// Capture multipart form file information
file, handler, err := req.FormFile("filename")
if err != nil {
fmt.Println(err)
}
// Read the file into memory
data, err := ioutil.ReadAll(file)
// ... check err value for nil
// Specify the Mongodb database
my_db := mongo_session.DB("... database name...")
// Create the file in the Mongodb Gridfs instance
my_file, err := my_db.GridFS("fs").Create(unique_filename)
// ... check err value for nil
// Write the file to the Mongodb Gridfs instance
n, err := my_file.Write(data)
// ... check err value for nil
// Close the file
err = my_file.Close()
// ... check err value for nil
// Write a log type message
fmt.Printf("%d bytes written to the Mongodb instance\n", n)
// ... other statements redirecting to rest of user flow...
}
问题 :
data, err := ioutil.ReadAll(file)
)? 谢谢…
不,您不应该一次在内存中完全读取文件,因为当文件太大时,这会中断。GridFS.Create文档中的第二个示例避免了此问题:
file, err := db.GridFS("fs").Create("myfile.txt")
check(err)
messages, err := os.Open("/var/log/messages")
check(err)
defer messages.Close()
err = io.Copy(file, messages)
check(err)
err = file.Close()
check(err)
至于为什么它比其他东西慢,在不深入研究所使用的两种方法的细节的情况下很难说出来。
问题内容: 我试图了解如何使用Node.js在Firebase Storage中上传文件。我的第一次尝试是使用Firebase库: 但是事实证明,Firebase无法从服务器端上传文件,正如在文档中明确指出的那样: Firebase存储不包含在服务器端Firebase npm模块中。相反,您可以使用gcloud Node.js客户端。 在代码中,您可以使用以下方式访问存储分区: 我们可以在没有Go
我从一个网址读取图像并处理它。我需要将这些数据上传到云存储中的一个文件中,目前我正在将这些数据写入一个文件,并上传该文件,然后删除该文件。有没有办法把数据直接上传到云端仓库?
我正在Windows服务器上使用C#处理存储在IIS服务器上的web应用程序。 null
问题内容: 我正在编写一个简单的部署工具,该工具需要从s3中获取tar文件,然后将其解压缩,然后将其上传到我们的登台服务器。我想这样做而不将文件存储在本地,而是将它们保存在内存中。 这是我的代码,用于从s3下载文件 我想避免在此示例中创建目录和文件,而只是将所有内容保留在内存中。我省去了从代码中提取文件的步骤。下一步将使用go- scp 上传文件,如下所示: 然后,我的问题将集中在这段代码的一部分
问题内容: 我读过多个有关使用mgo保存文件的博客,但找不到满足特定需求的解决方案,请大声喊叫! 下面在MongoDb中插入对象: 下面能够保存文件: 现在,在插入对象之前,我需要将上述文件设置为: 我的结构对象: 用外行术语来说,问题是:如何使用mgo驱动程序通过GoLang结构在mongoDb中插入文件(从HTML表单接收)? 谢谢阅读!:) 更新: PDF存储在MongoDB中,如下所示:
我尝试用以下代码保存从internet下载的文件 但在运行时,我得到的错误如下 03-04 20:42:51.080 8972-8972/com.example.me.demo2 E/BitmapFactory:无法解码流:java.io.FileNotFoundExcoop: /storage/emulated/0/.tanks/4a100abb-0e55-4062-8c37-f11f4189e