0

私が働いている会社は、クライアントから処理されたファイルをサーバーに保存し、サーバー上のファイル ディレクトリへのリンクを含む簡単なページを各クライアントに提供しています。各クライアントにはフォルダーがあり、これらのいずれにも多くのサブフォルダーがある場合があります。

最近、このセットアップを Amazon S3 バケットに移動しました。私の問題は、(オンラインで見つけた S3 php クラスを使用して) バケットの内容を取得すると、バケットの内容全体の大量の FLAT 配列が返されることです。これをフィルタリングして、各クライアントに自分のディレクトリのみが表示されるようにすることはできますが、このある種の階層データ構造を後で表示するために変換することは、お尻に大きな苦痛をもたらすことが証明されています.

構造を反映する何らかの方法で S3 アイテムを返す関数はありますか? そうでない場合、これはフラット配列の大きな配列から多次元配列を生成することに関する問題になる可能性があります。

ありがとう!クリス

4

2 に答える 2

0

S3 は、プレフィックスとデリミタを使用してキーを階層的にリストすることをサポートしています。詳細については、docsを参照してください。

于 2013-03-10T13:36:29.083 に答える
0

ファイルのリストを取得するには、接頭辞と区切り記号を使用します。

    <?php        
    $prefix = "jsondata/$folderName/$subFolderName/temp/";
    //$bucketname is a root bucket name   
    $ret = $s3->getObjectsByBucket($bucketname, array(
        'prefix'    => $prefix,
        'delimiter' => ''
    ));
    ?>
于 2013-03-14T12:52:30.577 に答える