資産プロバイダー

Assetsプロバイダは、Vonage Cloud Runtimeプラットフォーム上にオブジェクトを保存・取得することができます。セキュアファイル用のTTLを持つパブリックファイルへのリンクを生成したり、バイナリをダウンロードすることができます。

機能

  • createDir - これにより、ファイルをアップロードする前にディレクトリを作成することができます。コード・スニペット これ.
  • uploadFiles - これにより、プロジェクトから Vonage Cloud Runtime プラットフォームにファイルをアップロードして長期保存することができます。コード・スニペットを見る これ.
  • remove - これにより、以前にアップロードまたは作成したファイルやディレクトリを削除することができます。コード・スニペット これ.
  • list - これにより、プロジェクトで利用可能なファイルやディレクトリを一覧することができます。コード・スニペット これ.
  • generateLink - これにより、一般にアクセス可能なファイルへのリンクを生成することができます。コード・スニペット これ.
  • getRemoteFile - これにより、以前にアップロードしたファイルをバイナリ/生の形式でダウンロードすることができます。コード・スニペット これ.

アセット・プロバイダーの初期化

Assets Providerを使用するには、セッションを使用してプロバイダのインスタンスを作成する必要があります:

const session = vcr.createSession();
const assets = new Assets(session);

使用方法

例えば、Assetsプロバイダーを使ってHTMLフォームからファイルをアップロードするには、次のようにします。 busboy:

app.post('/upload', async (req, res, next) => {
    try { 
        const bb = busboy({ headers: req.headers });
        var filePath;

        bb.on('file', (name, file, info) => {
            filePath = path.join(os.tmpdir(), `image.png`); 
            file.pipe(fs.createWriteStream(filePath));
        });

        bb.on('close', async function() {
            const session = vcr.createSession();
            const assets = new Assets(session);

            await assets.uploadFiles([filePath], '/imgs');
            res.end(); 
        });

        req.pipe(bb);
    } catch (error) {
        next(error);
    }
});

そしてファイルを取り出す:

const session = vcr.createSession();
const assets = new Assets(session);
const file = await assets.getRemoteFile('/imgs/image.png');

または、ファイルへのリンクを生成する:

const session = vcr.createSession();
const assets = new Assets(session);
const fileData = await assets.generateLink('/imgs/image.png');