【发布时间】:2016-02-10 20:02:02
【问题描述】:
我有一个 Django 应用程序,用户在其中上传 .wav 文件,后端进行一些处理,然后输出处理后的 .wav 文件以供下载。部署到 Heroku 后,我发现我无法将 wav 文件写入 Heroku 的“临时文件系统”(在本地,正在将 .wav 文件写入 myapp/media)。
SO 的共识是您应该使用 Amazon 的 S3 来存储静态文件。我很好。问题是,我正在使用的 python 函数(以及我看过的所有其他函数)需要一个文件路径来写入文件。我编写 .wav 文件的代码:
output_path = "..../some_folder"
output_wav = wave.open (output_path, "w")
output_wav.setparams((nchannels, sampwidth, framerate, nframes, comptype, compname))
output_wav.writeframes(scaled_e)
我研究了 boto、django-storages 和 Heroku 的 Direct to S3 File Uploads in Python。但是,这些解决方案似乎假设您已经有一个要指向的文件(如果没有我可以写入的路径,我就无法创建它)。
Cedar 堆栈提供的 tmp 文件夹可以用于我的目的(尽管由于其不稳定性,它不是一个理想的解决方案),但我什至无法在 Google 上找到如何在 python/Django 应用程序中使用它。 ..
Django/Heroku noob 在这里转圈,发疯!非常感谢任何帮助。
【问题讨论】:
标签: python django heroku amazon-s3