資産プロバイダー

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

機能

  • createDir - これにより、ファイルをアップロードする前にディレクトリを作成することができます。コード・スニペット これ.
  • uploadFiles - これにより、プロジェクトのファイルをVonage Cloud Runtimeプラットフォームにアップロードして長期保存することができます。オプションの retention パラメータを使用してファイルの保存期間を設定します。コード・スニペット これ.
  • uploadData - これにより、最初にディスクに書き込むことなく、メモリ内のデータ・バッファを直接アップロードすることができる。オプションの retention パラメータを使用します。コード・スニペット これ.
  • remove - これにより、以前にアップロードまたは作成したファイルやディレクトリを削除することができます。コード・スニペット これ.
  • list - これにより、プロジェクトで利用可能なファイルやディレクトリを一覧することができます。コード・スニペット これ.
  • generateLink - これにより、一般にアクセス可能なファイルへのリンクを生成することができます。コード・スニペット これ.
  • getRemoteFile - これにより、以前にアップロードしたファイルをバイナリ/生の形式でダウンロードすることができます。コード・スニペット これ.

ファイルの保存期間

両方 uploadFiles そして uploadData オプションの retention パラメータを使用して、ファイルの保存期間を制御する。省略すると、プラットフォームのデフォルトの保存期間が適用されます。をインポートする。 FILE_RETENTION_PERIOD をSDKから列挙する:

import { Assets, FILE_RETENTION_PERIOD } from '@vonage/vcr-sdk';
価値 期間
FILE_RETENTION_PERIOD.ONE_DAY 1日
FILE_RETENTION_PERIOD.SEVEN_DAYS 7日
FILE_RETENTION_PERIOD.ONE_MONTH 1ヶ月
FILE_RETENTION_PERIOD.THREE_MONTHS 3ヶ月
FILE_RETENTION_PERIOD.SIX_MONTHS 6ヶ月
FILE_RETENTION_PERIOD.ONE_YEAR 1年

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

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');