a-blog cms PHP API Reference

DuplicateDetector
in package
implements DuplicateDetectorInterface

SHA-256 によるメディアの内容ハッシュ計算と、既存メディアとの照合を行う既定実装

MD5/SHA-1 は衝突攻撃が現実的で新規実装では避けるのが業界標準のため、衝突耐性のある SHA-256 に揃える。アルゴリズム識別子はカラムに持たせず単一固定とし、将来の知覚ハッシュ 導入時は別カラム(media_perceptual_hash)で対応する(本クラスの責務には含めない)。

Table of Contents

Interfaces

DuplicateDetectorInterface
メディアの内容(バイト列)による重複判定契約

Methods

findDuplicates()  : array<string|int, int>
指定したハッシュに一致する既存メディアを、指定ユーザーの選択可能スコープ内で探す
hash()  : string
ファイルの内容から同一性判定用のハッシュ値を計算する
hashContent()  : string
既に読み込み済みの内容(バイト列)から同一性判定用のハッシュ値を計算する

Methods

findDuplicates()

指定したハッシュに一致する既存メディアを、指定ユーザーの選択可能スコープ内で探す

public findDuplicates(string $hash, int $blogId, int $userId) : array<string|int, int>

スコープは「そのユーザーがメディア選択UIで選択できるメディア」と一致させる (Helper::filterAccessibleMedia())。

Parameters
$hash : string
$blogId : int
$userId : int
Return values
array<string|int, int> —

一致した media_id 一覧(media_id 昇順)。一致なしは空配列

hash()

ファイルの内容から同一性判定用のハッシュ値を計算する

public hash(string $filePath) : string
Parameters
$filePath : string

実在するローカルファイルパス

Return values
string

hashContent()

既に読み込み済みの内容(バイト列)から同一性判定用のハッシュ値を計算する

public hashContent(string $content) : string

クラウドストレージ等、ローカルファイルパスを介さず内容を取得した場合に使う (HashBackfiller など)。hash() と同一のアルゴリズムを使うことを保証する。

Parameters
$content : string
Return values
string

        
On this page

Search results