すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo VOD:その他の関数

最終更新日:Aug 27, 2026

このページでは、EdgeScript で利用できるユーティリティ関数 (エンコーディングとデコーディング、乱数生成、チェックサム、型変換、一意の識別子の生成) について説明します。

Base64 エンコーディングとデコーディング

EdgeScript では、標準 Base64 (base64_enc / base64_dec) と URL セーフな Base64 (base64_enc_safe / base64_dec_safe) の 2 種類の Base64 バリアントを提供します。一般的なエンコーディングには標準バリアントを使用し、エンコード後の文字列を URL または HTTP ヘッダーで使用する場合は URL セーフなバリアントを使用してください。

base64_enc

標準 Base64 エンコーディングを使用して文字列をエンコードします。

構文

base64_enc(s [, no_padding])

パラメーター

パラメーター

説明

s

エンコードする文字列を指定します。

no_padding

パディング文字を省略するかどうかを指定します。末尾の = 文字を削除するには true に設定します。デフォルト:false

戻り値

Base64 エンコードされた文字列を返します。

if $http_data {
  decdata = base64_dec($http_data)
  say(concat('base64_decdata=', decdata))
  say(concat('base64_encdata=', base64_enc('hello, dsl')))
}

リクエストヘッダー:data: aGVsbG8sIGRzbA==

出力:

base64_decdata=hello, dsl
base64_encdata=aGVsbG8sIGRzbA==

base64_dec

Base64 エンコードされた文字列をデコードします。

構文

base64_dec(s)

パラメーター

パラメーター

説明

s

デコードする Base64 エンコード文字列を指定します。

戻り値

デコード後の元の文字列を返します。

if $http_data {
  decdata = base64_dec($http_data)
  say(concat('base64_decdata=', decdata))
  say(concat('base64_encdata=', base64_enc('hello, dsl')))
}

リクエストヘッダー:data: aGVsbG8sIGRzbA==

出力:

base64_decdata=hello, dsl
base64_encdata=aGVsbG8sIGRzbA==

base64_enc_safe

URL セーフな Base64 を使用して文字列をエンコードします。出力では、+- に、/_ に置き換えられ、= のパディング文字は削除されます。

構文

base64_enc_safe(str)

パラメーター

パラメーター

説明

str

エンコードする文字列を指定します。

戻り値

URL セーフな Base64 エンコード文字列を返します。

add_rsp_header('X-RESPOND-OUTPUT', concat('base64_enc_safe=', base64_enc_safe('hello, dsl')), true)

レスポンスヘッダー:

X-RESPOND-OUTPUT: base64_enc_safe=aGVsbG8sIGRzbA

base64_dec_safe

URL セーフな Base64 エンコード文字列をデコードします。デコード前に、-+ に、_/ に置き換えられます。文字列長が 4 の倍数になるように、必要に応じてパディング文字 (=) が追加されます。

構文

base64_dec_safe(str)

パラメーター

パラメーター

説明

str

デコードする URL セーフな Base64 エンコード文字列を指定します。

戻り値

デコード後の元の文字列を返します。

add_rsp_header('X-RESPOND-OUTPUT', concat('base64_dec_safe=', base64_dec_safe(base64_enc_safe('hello, dsl'))), true)

レスポンスヘッダー:

X-RESPOND-OUTPUT: base64_dec_safe=hello, dsl

URL エンコーディングとデコーディング

url_escape

URL エンコーディング (パーセントエンコーディング) を使用して文字列をエンコードします。

構文

url_escape(s)

パラメーター

パラメーター

説明

s

エンコードする文字列を指定します。

戻り値

URL エンコードされた文字列を返します。

raw = '/abc/123/ dd/file.m3u8'
esdata = url_escape(raw)
dsdata = url_unescape(esdata)
if eq(raw, dsdata) {
  say(concat('raw=', raw))
  say(concat('dsdata=', dsdata))
}

出力:

raw=/abc/123/ dd/file.m3u8
dsdata=/abc/123/ dd/file.m3u8

url_unescape

URL エンコードされた文字列をデコードします。

構文

url_unescape(s)

パラメーター

パラメーター

説明

s

デコードする URL エンコード文字列を指定します。

戻り値

デコード後の元の文字列を返します。

raw = '/abc/123/ dd/file.m3u8'
esdata = url_escape(raw)
dsdata = url_unescape(esdata)
if eq(raw, dsdata) {
  say(concat('raw=', raw))
  say(concat('dsdata=', dsdata))
}

出力:

raw=/abc/123/ dd/file.m3u8
dsdata=/abc/123/ dd/file.m3u8

乱数生成

randomseed

乱数ジェネレーターを初期化します。リクエスト間で異なる乱数列になるように、rand の前にこの関数を呼び出してください。

構文

randomseed()

パラメーター

なし。

戻り値

なし。

randomseed()
r = rand(1, 100)

rand

指定した範囲内 (両端を含む) の乱数を返します。

構文

rand(n1, n2)

パラメーター

パラメーター

説明

n1

下限を指定します。

n2

上限を指定します。

戻り値は n1 <= result <= n2 を満たします。

戻り値

乱数を返します。

r = rand(1, 100)

rand_hit

指定した確率に基づいて true または false を返します。これを使用して、割合ベースのトラフィック分割や機能のロールアウトを実装できます。

構文

rand_hit(ratio)

パラメーター

パラメーター

説明

ratio

true を返す確率を指定します。有効な値:0~100。100 を指定すると常に true を返し、0 を指定すると常に false を返します。

戻り値

true または false を返します。

rand_hit(80)

rand_bytes

指定した長さのランダムなバイト文字列を生成します。

構文

rand_bytes(len)

パラメーター

パラメーター

説明

len

生成するランダムなバイト文字列の長さを指定します。

戻り値

生成されたランダムなバイト文字列を返します。

rand_bytes(16)

チェックサム

crc

文字列の巡回冗長検査 (CRC) 値を計算します。

構文

crc(s)

パラメーター

パラメーター

説明

s

CRC 値を計算する文字列を指定します。

戻り値

入力文字列の CRC 値を返します。

crc('hello edgescript')

型変換

tonumber

文字列を数値型に変換します。

構文

tonumber(s [, base])

パラメーター

パラメーター

説明

s

変換する文字列を指定します。

base

数値変換の基数を指定します。有効な値:10 (10 進数) および 16 (16 進数)。デフォルト:10

戻り値

数値を返します。

n = tonumber('100')
say(concat('tonumber()=', n))

出力:

tonumber()=100

一意の識別子

uuid

ランダムに生成された UUID 文字列を返します。

構文

uuid()

パラメーター

なし。

戻り値

UUID 文字列を返します。例:16903a86-4173-4dea-842c-926c5860fe05

say(uuid())

出力:

16903a86-4173-4dea-842c-926c5860fe05