AWS SDK for PHP 3.x の使用: 最終変更時刻までに S3 バケット内の最新のオブジェクトを取得します。
P粉262113569
P粉262113569 2023-07-28 11:50:32
0
1
444

AWS SDK for PHP 3.x を使用して、最終変更時刻までにバケット内の最新のオブジェクトを取得しようとしています。

AWS CLI を使用してこの機能を実現する方法を説明しました。ここ:

  • 最終変更時刻までに S3 バケット内の最新のオブジェクトを取得します
  • AWS CLI を使用して S3 から最後に変更されたオブジェクトを取得します

しかし、PHP SDK を使用してこの機能を実装する方法がわかりません。

$S3Client = new AwsS3S3Client([ 'バージョン' => '最新'、 '地域' => 'eu-west-3', '資格情報' => [ 'キー' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', '秘密' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', ] ]); $startTime = strtotime('-5 分'); $res = $S3Client->ListObjectsV2([ 'バケット' => '私のバケット'、 'プレフィックス' => 'オブジェクト/', 'StartAfter' => $startTime ]) 

推奨される ListObjectsV2 メソッドを使用しています。

質問が 3 つあります。


  1. 結果を LastModified で並べ替えるにはどうすればよいですか? (CLI でできるのと同じように)

  2. 一部の結果が GLACIER 保存オブジェクトに移動されるため、検索に影響するライフサイクル ポリシーがいくつかありますが、これは望ましくありません。

  3. オブジェクトのタグとメタデータを取得したいです。どうやって入手すればいいですか? x-amz-optional-object-attributes を使用しますか?使い方?

ちなみに、StartAfter パラメータを使用しても何も変わらないようです。

P粉262113569
P粉262113569

全員に返信 (1)
P粉068486220

  • この並べ替えロジックをコードに実装する必要があります。S3Client/AWS はデフォルトではこの機能をサポートしていません。これは、オブジェクトを並べ替えて最新のオブジェクトを見つける前に、すべてのオブジェクト (最初の 1000 個だけでなく) をリストする必要があることも意味します。
  • StorageClass プロパティは結果に含まれるため、結果を並べ替えたりさらに処理したりする前に、それらをフィルタリングできます/フィルタリングする必要があります。
  • これは、操作を列挙するだけでは不可能です。関心のあるオブジェクトごとに個別の GetObject リクエストを送信する必要があります。数千のオブジェクトのメタデータを同時に取得したい場合は、アプローチを再考し、そのようなデータをクエリ可能/検索可能な適切なデータベースに保存する必要があります。
いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!