a-blog cms PHP API Reference

S3 extends Filesystem
in package

Table of Contents

Properties

$directoryMod  : int
$fileMod  : int
$filesystem  : FilesystemOperator

Methods

__construct()  : mixed
S3 constructor.
archivesDir()  : string
ブログ・年月を考慮したパスを取得
changeDir()  : bool
カレントディレクトリを変更する
changeMod()  : bool
ファイルのパーミッションを変更する
compress()  : void
圧縮する
copy()  : bool
ファイルをコピーする
copyDirectory()  : bool
ディレクトリをコピーする
exists()  : bool
ファイルの存在確認
get()  : string|false
ファイルを取得する
getFileList()  : array<string|int, string>
ディレクトリ内のファイル一覧を取得する
getFileSize()  : int
ファイルサイズを取得する
getImageSize()  : array{0: int, 1: int, 2: int, 3: string, bits: int, channels: int, mime: string}|false
画像サイズを取得する
getMimeType()  : string|null
ファイルのMIMEタイプを取得
isDirectory()  : bool
指定したパスがディレクトリかどうかを判定
isExecutable()  : bool
実行可能ファイルかどうか
isFile()  : bool
指定したパスがファイルかどうかを判定
isLink()  : bool
ファイルがシンボリックリンクかどうか
isReadable()  : bool
読み込み可能かどうか
isWritable()  : bool
書き込み可能かどうか
lastModified()  : int
ファイルの更新日時を取得する
makeDirectory()  : bool
ディレクトリを作成する
mbBasename()  : string
move()  : bool
ファイルを移動する
put()  : int
ファイルを保存する
readStream()  : resource|false
ファイルをストリームで読み込む
remove()  : bool
ファイルを削除する
removeDirectory()  : bool
ディレクトリを削除する
removeIllegalCharacters()  : string
ファイル名から不正な文字を削除
safeRealpath()  : string|false
realpath の安全なラッパー関数
setDirectoryMod()  : void
setFileMod()  : void
uniqueFilePath()  : string
ユニークなファイルパスを排他的に確保する
unzip()  : void
解凍する
validateDirectoryTraversal()  : string
指定されたファイル名がディレクトリトラバーサルを含まないか検証し、絶対パスを返します。
validateDirectoryTraversalPath()  : bool
ディレクトリ・トラバーサル対応のため、パスが公開領域のものか確認する
validatePublicPath()  : bool
ディレクトリ・トラバーサル対応のため、パスが公開領域のものか確認する
withUniqueFilePath()  : T
ユニークなファイルパスを排他的に確保した上でコールバックを実行する
convertStrToLocal()  : string
createExclusively()  : bool
指定したパスにファイルが存在しない場合に限り、空ファイルを作成する

Properties

$directoryMod

protected int $directoryMod = 0

$fileMod

protected int $fileMod = 0

$filesystem

private FilesystemOperator $filesystem

Methods

__construct()

S3 constructor.

public __construct(S3Client $s3Client, string $bucketName[, string $pathPrefix = '' ][, FilesystemOperator|null $filesystem = null ]) : mixed
Parameters
$s3Client : S3Client
$bucketName : string
$pathPrefix : string = ''
$filesystem : FilesystemOperator|null = null

テスト時にフェイクを注入するためのオプション引数

archivesDir()

ブログ・年月を考慮したパスを取得

public archivesDir() : string
Return values
string

changeDir()

カレントディレクトリを変更する

public changeDir(string $path) : bool
Parameters
$path : string
Return values
bool

changeMod()

ファイルのパーミッションを変更する

public changeMod(string $path[, int|null $mode = null ]) : bool
Parameters
$path : string
$mode : int|null = null
Return values
bool

compress()

圧縮する

public compress(string $source, string $destination[, string $root = '' ][, array<string|int, mixed> $exclude = [] ]) : void
Parameters
$source : string
$destination : string
$root : string = ''
$exclude : array<string|int, mixed> = []

copy()

ファイルをコピーする

public copy(string $from, string $to) : bool
Parameters
$from : string
$to : string
Return values
bool

copyDirectory()

ディレクトリをコピーする

public copyDirectory(string $from, string $to) : bool
Parameters
$from : string
$to : string
Return values
bool

exists()

ファイルの存在確認

public exists(string $path) : bool
Parameters
$path : string
Return values
bool

get()

ファイルを取得する

public get(string $path[, string $publicDir = '' ]) : string|false
Parameters
$path : string

取得したいファイルパス

$publicDir : string = ''

設定されたディレクトリ以下に取得できるファイルを制限(index.phpからの相対パス可)

Tags
throws
RuntimeException
Return values
string|false

getFileList()

ディレクトリ内のファイル一覧を取得する

public getFileList(string $path) : array<string|int, string>
Parameters
$path : string
Return values
array<string|int, string>

getFileSize()

ファイルサイズを取得する

public getFileSize(string $path) : int
Parameters
$path : string
Return values
int

getImageSize()

画像サイズを取得する

public getImageSize(string $path[, array<string|int, mixed> &$info = [] ]) : array{0: int, 1: int, 2: int, 3: string, bits: int, channels: int, mime: string}|false
Parameters
$path : string
$info : array<string|int, mixed> = []
Return values
array{0: int, 1: int, 2: int, 3: string, bits: int, channels: int, mime: string}|false

getMimeType()

ファイルのMIMEタイプを取得

public getMimeType(string $path) : string|null
Parameters
$path : string
Return values
string|null

isDirectory()

指定したパスがディレクトリかどうかを判定

public isDirectory(string $path) : bool
Parameters
$path : string
Return values
bool

isExecutable()

実行可能ファイルかどうか

public isExecutable(string $path) : bool
Parameters
$path : string
Return values
bool

isFile()

指定したパスがファイルかどうかを判定

public isFile(string $path) : bool
Parameters
$path : string
Return values
bool

ファイルがシンボリックリンクかどうか

public isLink(string $path) : bool
Parameters
$path : string
Return values
bool

isReadable()

読み込み可能かどうか

public isReadable(string $path) : bool
Parameters
$path : string
Return values
bool

isWritable()

書き込み可能かどうか

public isWritable(string $path) : bool
Parameters
$path : string
Return values
bool

lastModified()

ファイルの更新日時を取得する

public lastModified(string $path) : int
Parameters
$path : string
Return values
int

Unix time stamp

makeDirectory()

ディレクトリを作成する

public makeDirectory(string $path) : bool
Parameters
$path : string
Return values
bool

mbBasename()

public mbBasename(string $path[, null|string $suffix = null ]) : string
Parameters
$path : string
$suffix : null|string = null
Return values
string

move()

ファイルを移動する

public move(string $from, string $to) : bool
Parameters
$from : string
$to : string
Return values
bool

put()

ファイルを保存する

public put(string $path, string $content) : int
Parameters
$path : string
$content : string
Return values
int

readStream()

ファイルをストリームで読み込む

public readStream(string $path) : resource|false
Parameters
$path : string
Return values
resource|false

remove()

ファイルを削除する

public remove(string $path) : bool
Parameters
$path : string
Return values
bool

removeDirectory()

ディレクトリを削除する

public removeDirectory(string $dir) : bool
Parameters
$dir : string
Return values
bool

removeIllegalCharacters()

ファイル名から不正な文字を削除

public removeIllegalCharacters(string $source) : string
Parameters
$source : string
Return values
string

safeRealpath()

realpath の安全なラッパー関数

public safeRealpath(string $path) : string|false
Parameters
$path : string
Return values
string|false

setDirectoryMod()

public setDirectoryMod(int $mod) : void
Parameters
$mod : int

setFileMod()

public setFileMod(int $mod) : void
Parameters
$mod : int

uniqueFilePath()

ユニークなファイルパスを排他的に確保する

public uniqueFilePath(string $original[, string $prefix = '' ][, int $num = 0 ]) : string

候補パスへの排他的な作成(createExclusively)に成功するまで採番をやり直すため、 複数プロセスが同時に呼び出しても同じパスを取り合うことがない。確保できたパスには 空ファイルが作成されるため、呼び出し側は続けてそのパスへ実際の内容を書き込むこと。

Parameters
$original : string
$prefix : string = ''
$num : int = 0
Tags
throws
RuntimeException

試行回数の上限に達した場合

Return values
string

unzip()

解凍する

public unzip(string $source, string $destination) : void
Parameters
$source : string
$destination : string

validateDirectoryTraversal()

指定されたファイル名がディレクトリトラバーサルを含まないか検証し、絶対パスを返します。

public validateDirectoryTraversal(string $baseDir, string $fileName) : string
Parameters
$baseDir : string
$fileName : string
Return values
string

validateDirectoryTraversalPath()

ディレクトリ・トラバーサル対応のため、パスが公開領域のものか確認する

public validateDirectoryTraversalPath(string $path[, string $publicDir = '' ][, bool $checkExists = true ]) : bool
Parameters
$path : string
$publicDir : string = ''
$checkExists : bool = true
Return values
bool

validatePublicPath()

ディレクトリ・トラバーサル対応のため、パスが公開領域のものか確認する

public validatePublicPath(string $path[, string $publicDir = '' ]) : bool
Parameters
$path : string
$publicDir : string = ''
Return values
bool

withUniqueFilePath()

ユニークなファイルパスを排他的に確保した上でコールバックを実行する

public withUniqueFilePath(string $original, string $prefix, callable(string $path): T $callback) : T

uniqueFilePath() で確保したパスへの書き込みをコールバックに任せ、コールバックが 例外を投げた場合は確保したパス(空ファイル)を削除してから例外を再送出する。 これにより、呼び出し側で個別に try/catch を書かなくても「予約したが使われなかった 空ファイルが残る」事態を防げる。

Parameters
$original : string
$prefix : string
$callback : callable(string $path): T
Tags
template
Return values
T

convertStrToLocal()

protected convertStrToLocal(string $path) : string
Parameters
$path : string
Return values
string

createExclusively()

指定したパスにファイルが存在しない場合に限り、空ファイルを作成する

protected createExclusively(string $path) : bool

S3 の条件付き書き込み(If-None-Match: *)を使い、存在確認と書き込みを 1回の PutObject にまとめることでアトミックに行う。同じキーへの条件付き 書き込みが競合した場合、後から完了した側は 412 Precondition Failed で 失敗するため、それを「既に他プロセスが確保済み」として判定する。

Parameters
$path : string
Return values
bool

        
On this page

Search results