我的需求是存储一个临时的文件,然后使用ffmpeg进行转码。
貌似leancloud无法用createWriteStream在任意路径创建文件。有看到说法是在/tmp目录下可生成,但是试了也不可以。
麻烦问一下有人了解这个用法么?

1 人赞了这个帖子.

目前的版本中 home 目录(/home/leanengine)和临时文件目录(/tmp)都是可写的,如果还是不行建议发一下代码和错误提示。

ffmpeg在leancloud上用不了唉...

是的,我们的容器中没有 ffmpeg,但如果你把所有的依赖库都打包到你的程序里,应该还是可以用的

其实不行,ffmpeg不是通过npm可以安装的...
你们有没有计划加一个,好多人都在问,主要是处理微信语音的问题吧。
用七牛API的话,太迂回了,其实并不好用。

嗯,这个的话确实可以考虑一下,能否描述一下你具体的需求(把微信的什么格式转到什么格式)、除了 ffmpeg 还需要用到什么工具之类的。

微信语音是amr格式,转出到MP3或者m4a,只需要环境有FFmpeg,另外需要存放临时文件(/tmp已经满足需要了)其他的事情npm和express都能搞定了。

了解了,可能需要一些时间才能支持。

哈哈哈 你们快点搞好 我提前把教程写了...

《leancloud轻松搞定微信语音》

我目前是用自己的服务器中转了下,Python代码如下:

def convert_silk_to_mp3():
    url = request.args.get('url')

    import shutil
    import os
    import leancloud

    filename = url.split('/')[-1]
    download_path = '/tmp/' + filename

    r = requests.get(url, stream=True)
    if r.status_code == 200:
        with open(download_path, 'wb') as f:
            r.raw.decode_content = True
            shutil.copyfileobj(r.raw, f)

    os.system("sh /usr/share/silk-v3-decoder-master/converter.sh " + download_path + " mp3")
    convert_path = '/tmp/' + filename + '.mp3'

    with open(convert_path) as f:
        voice = leancloud.File('weapp-voice-' + filename + '.mp3', f)
        voice.save()

        return {'id': voice.id, 'url': voice.url}

先从 leancloud 把 slk 文件下载下来,然后本地用 ffmpeg 转化,然后再上传到 leancloud。

比较迂回...如果云引擎上可以做,就可以省掉2次网络传输的时间。

我也有nodejs的转化代码,只要环境支持随时都可以上 joy
用leancloud就是因为不想折腾自己的服务器唉...