Rumah >pembangunan bahagian belakang >Golang >AWS S3 ListObjectsV2 mengembalikan 'folder' sebagai objek
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)
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/" }
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)
Tetapi hasilnya tetap sama.
Ini adalah hasil daripada parameter:
Params: { Bucket: "BUCKET", Prefix: "Folder1/Folder2/Folder3/" }
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"
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!