[英]How to display image or video file from AWS S3 bucket on my website using PHP
[英]How to display only the directories from s3 bucket using aws cli command
我需要顯示 s3 存儲桶中存在的所有目錄,其中一些目錄是隱藏的,只有當我將版本過濾為“顯示”而不是隱藏時才會再次顯示。
同樣的事情也發生在目錄中我們看不到文件的文件上,但是當我們在版本中選擇過濾器以“顯示”時,它會顯示文件。
我們如何在aws-cli中看到這些文件和目錄。 如果您有解決方案,請提供幫助。
例如:
roxor@ubuntu:~$ aws s3 ls s3://dw-etl-source-prod
workday dsr
我需要獲取 4 個目錄,但由於目錄包含版本控制,因此未顯示。 如果我過濾版本以顯示它會在 aws s3 UI 中提供所有文件,但我如何使用 AWS CLI 執行相同的操作。
檢查鍵的最后一個字符/
。
aws s3api list-objects-v2 --bucket <your_bucket> --prefix <prefix> --query 'Contents[?ends_with(Key, `/`)].[Key]' --output text
如果您使用的是基於 POSIX 的系統並且想要使用熟悉的aws s3 ls
語法,請嘗試:
aws s3 ls --recursive <s3Uri> | cut -c32- | xargs -d '\n' -n 1 dirname | uniq
這是一個快速解釋。 截至 2020 年 11 月, aws s3 ls
以以下格式打印對象:
<date> <time> <size> <path>
這個想法是使用cut
從這個列表中提取<path>
,將它傳遞給dirname
以提取目錄名稱,最后使用uniq
避免重復。 cut -c32-
將 s3 列表修剪到第 31 個字符。 如果您的文件太大,您可能需要調整它。
你可以試試看。
aws s3 ls s3://<bucket-name> --recursive --human-readable --summarize | awk '{print $5}' | awk -F '/' '/\// {print $1}' | sort -u
我的解決方案:
aws s3 ls://<your bucket>/<path>/<to>/ | awk '{print $2}'
我將這些解決方案中的一些組合成一個簡單的襯里,該襯里通過檢查目錄中的任何內容(但不是遞歸地)來工作,該目錄也是一個目錄(文件名以 / 結尾的任何內容)
aws s3 ls s3://<your bucket>/<path>/<to>/ | awk '{print $2}' | awk -F '/' '/\// {print $1}'
希望這有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.