Menggunakan AWS SDK untuk PHP 3.x: Dapatkan objek terkini dalam baldi S3 mengikut masa pengubahsuaian terakhir.
P粉262113569
P粉262113569 2023-07-28 11:50:32
0
1
430

Saya cuba mendapatkan objek terbaharu dalam baldi mengikut masa terakhir diubah suai menggunakan AWS SDK untuk PHP 3.x.

Saya telah melihat cara menggunakan AWS CLI untuk mencapai fungsi ini. Di sini:

  • Dapatkan objek terkini dalam baldi S3 mengikut masa pengubahsuaian terakhir
  • Dapatkan objek diubah suai terakhir daripada S3 menggunakan AWS CLI

Tetapi saya tidak tahu cara menggunakan PHP SDK untuk melaksanakan fungsi ini.

$S3Client = new AwsS3S3Client([ 'versi' => 'terkini', 'region' => 'eu-west-3', 'tauliah' => 'kunci' = 'xxxxxxxxxxxxxxxxxxxxxxxx', 'rahsia' => 'xxxxxxxxxxxxxxxxxxxxxxxx', ] ]); $startTime = strtotime('-5 minit'); $res = $S3Client->ListObjectsV2([ 'baldi' => 'baldi saya', 'Awalan' => 'objek/', 'StartAfter' => $startTime ])  

Saya menggunakan kaedah ListObjectsV2 yang disyorkan.

Saya ada tiga soalan.


  1. Bagaimanakah saya harus mengisih keputusan mengikut LastModified? (Sama seperti yang anda boleh lakukan dalam CLI)

  2. Saya mempunyai beberapa dasar kitaran hayat yang mempengaruhi carian saya kerana saya mendapat beberapa hasil carian yang dialihkan ke objek yang disimpan GLACIER, yang saya tidak mahu.

  3. Saya mahu mendapatkan teg dan metadata sesuatu objek. Bagaimana saya harus mendapatkannya? Adakah anda mahu menggunakan x-amz-optional-object-attributes? bagaimana nak guna?

Dengan cara ini, menggunakan parameter StartAfter nampaknya tidak mengubah apa-apa.

P粉262113569
P粉262113569

membalas semua (1)
P粉068486220

  • Anda perlu melaksanakan logik pengisihan dalam kod anda, S3Client/AWS tidak menyokong ciri ini secara lalai. Ini juga bermakna anda perlu menyenaraikan semua objek (bukan hanya 1000 pertama) sebelum anda boleh mengisihnya untuk mencari objek terbaru.
  • Sifat StorageClass disertakan dalam hasil dan anda boleh/perlu menapis hasil sebelum mengisih atau memprosesnya selanjutnya.
  • Ini tidak mungkin hanya dengan menyenaraikan tindakan. Anda perlu menyerahkan permintaan GetObject yang berasingan untuk setiap objek yang anda minati. Jika anda ingin mendapatkan metadata untuk beribu-ribu objek secara serentak, anda perlu memikirkan semula pendekatan anda, dan mungkin menyimpan data tersebut dalam pangkalan data yang boleh ditanya/boleh dicari yang betul.
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!