亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AWS S3 Listing API - 如何列出具有特定前綴的 S3 存儲桶內的所有內容

AWS S3 Listing API - 如何列出具有特定前綴的 S3 存儲桶內的所有內容

Go
慕萊塢森 2023-06-26 15:29:09
我正在嘗試列出prefixS3 存儲桶中特定的所有項目。這是我的目錄結構:Item1/     Item2/          Item3/               Item4/                     image_1.jpg               Item5/                     image_1.jpg                     image_2.jpg當我設置prefex為 時Item1/Item2,我得到以下鍵:Item1/Item2/Item1/Item2/Item3/Item4/image_1.jpgItem1/Item2/Item3/Item5/image_1.jpgItem1/Item2/Item3/Item5/image_2.jpg我想得到的是:Item1/Item2/Item1/Item2/Item3Item1/Item2/Item3/Item4Item1/Item2/Item3/Item5Item1/Item2/Item3/Item4/image_1.jpgItem1/Item2/Item3/Item5/image_1.jpgItem1/Item2/Item3/Item5/image_2.jpg無論如何,在 golang 中可以實現這一點嗎?
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

Amazon S3 中實際上并不存在文件夾。它是一個扁平的對象存儲系統。

例如,使用AWS 命令行界面 (CLI),我可以將命令復制到 Amazon S3 存儲桶:

aws?s3?cp?foo.txt?s3://my-bucket/folder1/folder2/foo.txt

即使不存在,這項工作也folder1很好folder2。這是因為對象存儲時使用包含對象完整路徑的Key(文件名)。因此,上面的對象實際上有一個 Key(文件名):

folder1/folder2/foo.txt

然而,為了讓事情變得更容易,Amazon S3 管理控制臺讓它看起來好像有文件夾。在 S3 中,這些稱為通用前綴而不是文件夾。

因此,當您在指定 a 的同時進行 API 調用以列出存儲桶的內容時Prefix,它只會顯示“列出 Key 以該字符串開頭的所有對象”。

您的列表不顯示任何文件夾,因為它們實際上并不存在。

現在,只是與我自己矛盾,實際上可以創建一個文件夾(例如,通過單擊管理控制臺中的“創建文件夾”)。這實際上創建了一個與文件夾同名的零長度對象。然后,該文件夾將出現在列表中,因為它實際上列出的是零長度對象而不是文件夾。

這可能就是為什么Item1/Item2/出現在您的列表中,但Item1/Item2/Item3沒有出現的原因。在某個階段,某人必須“創建了一個名為 的文件夾”?Item1/Item2/,該文件夾實際上使用該密鑰創建了一個零長度對象。


查看完整回答
反對 回復 2023-06-26
  • 1 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號