AWS S3 ListObjectsV2 mengembalikan 'folder' sebagai objek

WBOY
Lepaskan: 2024-02-08 20:53:49
ke hadapan
650 orang telah melayarinya

AWS S3 ListObjectsV2 返回“文件夹”作为对象

Kandungan soalan

Saya cuba menyenaraikan semua fail di bawah direktori tertentu dalam baldi s3 (saya tahu s3 sebenarnya tidak mempunyai direktori.).

Strukturnya ialah:

bucket-名称:folder1/folder2/folder3/file

Jadi dalam dunia s3 saya percaya ini hanya menyimpan fail yang dipanggil di atas.

Ini kod saya:

params := &s3.listobjectsv2input{
        bucket: aws.string(os.getenv("s3_user_bucket")),
        prefix: aws.string(key + loc[0] + "/"),
    }

    resp, _ := svc.listobjectsv2(params)
Salin selepas log masuk

resp mengandungi fail yang saya harapkan, dan "direktori" ia disimpan dalam:

contents: [{
      etag: "\"tag\"",
      key: "folder1/folder2/folder3/",
      lastmodified: 2023-03-02 17:32:17 +0000 utc,
      size: 0,
      storageclass: "standard"
    },{
      etag: "\"tag\"",
      key: "folder1/folder2/folder3/file",
      lastmodified: 2023-03-02 17:32:30 +0000 utc,
      size: 106808,
      storageclass: "standard"
    }],
  istruncated: false,
  keycount: 2,
  maxkeys: 1000,
  name: "bucket",
  prefix: "folder1/folder2/folder3/"
}
Salin selepas log masuk

Saya juga mencuba:

params := &s3.listobjectsv2input{
        bucket: aws.string(os.getenv("s3_user_bucket")),
        prefix: aws.string(key + loc[0] + "/"),
        delimiter: aws.string("/"),
    }

    resp, _ := svc.listobjectsv2(params)
Salin selepas log masuk

Tetapi hasilnya tetap sama.

Ini adalah hasil daripada parameter:

Params:  {
  Bucket: "BUCKET",
  Prefix: "Folder1/Folder2/Folder3/"
}
Salin selepas log masuk


Jawapan betul


Saya andaikan anda bertanya mengapa terdapat direktori yang dikembalikan sebagai objek.

Anda betul sekali, amazon s3 tidak menggunakan direktori. Sebaliknya, nama fail objek (key) ialah laluan penuh, termasuk nama fail. Tidak perlu mencipta direktori sebelum mencipta objek pada laluan tertentu.

Namun, jika seseorang mengklik butang Buat Folder dalam konsol pengurusan s3, ia akan mencipta objek sifar panjangdengan nama direktori. Ini "memaksa" direktori untuk muncul (kerana terdapat objek di dalamnya), tetapi ia sebenarnya objek panjang sifar.

Lihat hasil penyenaraian anda:

Contents: [{
      ETag: "\"TAG\"",
      Key: "Folder1/Folder2/Folder3/",
      LastModified: 2023-03-02 17:32:17 +0000 UTC,
      Size: 0,
      StorageClass: "STANDARD"
Salin selepas log masuk

Anda akan perasan ia tertera size: 0, jadi ini ialah objek sifar panjang.

Jika anda ingin mengecualikan jenis fail ini daripada senarai, langkau objek panjang sifar dalam kod anda.

Atas ialah kandungan terperinci AWS S3 ListObjectsV2 mengembalikan 'folder' sebagai objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
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!