IBM Cloud Object Storage(ICOS) 버킷에서 디렉토리 목록

하고 싶은 일



디렉토리 목록은 URL에 지정할 때 디렉토리에 포함된 파일 목록을 표시하는 웹 서버의 기능입니다.
예를 들어, 파일을 다운로드하는 웹 사이트에는 이와 같이 파일 목록이 표시됩니다.
이 기능은 IBM Cloud Object Storage(ICOS)에서만 가능합니다.



IBM Cloud 명령으로 로그인


ibmcloud 명령을 사용합니다.
ibmcloud login

IBM Cloud Object Storage(ICOS) 인스턴스 작성



IBM Cloud Object Storage(ICOS)가 없으면 작성하십시오.

h tps : // c ぉ d. 이 bm. 이 m/도 cs/세 rゔぃせ s/cぉ우 d오 b지ぇctss 뚝뚝/바시 cs? 토피 c = c ぉ u d b b ぇ c t s touge - gs - v # gs - v vp 로오 시온
# リソースグループを指定
export RESOURCE_GROUP=khayama
ibmcloud target -g $RESOURCE_GROUP

# サービスインスタンスを作成
export INSTANCE_NAME=khayama-cos
export PLAN=lite # or standard
ibmcloud resource service-instance-create $INSTANCE_NAME cloud-object-storage $PLAN global
...

Creating service instance khayama-cos in resource group khayama of account TEST as khayama-user...
OK
Service instance khayama-cos was created.

Name:         khayama-cos   
ID:           crn:v1:bluemix:public:cloud-object-storage:global:a/039dbe6794084c7cb514a276dd2345da:ea7a91a5-30be-4ed0-a94c-d10115b03210::   
GUID:         ea7a91a5-30be-4ed0-a94c-d10115b03210   
Location:     global   
State:        active   
Type:         service_instance   
Sub Type:        
Created at:   2019-10-14T09:15:05Z   
Updated at:   2019-10-14T09:15:05Z   

IBM Cloud Object Storage (ICOS) CLI 플러그인 설치 및 설정



IBM Cloud Object Storage(ICOS)의 버킷 작성에 필요한 플러그인을 설치 및 구성합니다.

h tps : // c ぉ d. 이 bm. 이 m / 드 cs / c ぉ う おお b ぇ c t s 토라 게 ぃ - p ぅ 긴? 토피 c = c ぉ u d b ぇ c t s touge- c ぃ
ibmcloud plugin install cloud-object-storage
export CRN=`ibmcloud resource service-instance khayama-cos | grep crn | awk '{print $2}'`
ibmcloud cos config crn --crn $CRN

IBM Cloud Object Storage(ICOS) 버킷 작성



버킷을 만듭니다.

htps : // c ぉ d. 이 bm. 이 m / 드 cs / c ぉ 우 d 오 b ぇ c t s 토라 게 - c p p gin? 토피 c = c ぉ u d b b ぇ c t s touge-c
export BUCKET_NAME=khayama-ibmcloud
ibmcloud cos create-bucket --bucket $BUCKET_NAME --region jp-tok --class SMART
ibmcloud cos list-buckets

IBM Cloud Object Storage(ICOS) 버킷에 대한 Public Access 사용(CLI)



버킷별로 게시하는 명령을 실행합니다.ibmcloud 명령 버전 1.3.0 이상에서 실행하십시오.
export INSTANCE_ID=$(ibmcloud resource service-instance khayama-cos --output json | jq -r '.[].guid')

ibmcloud iam access-group-policy-create パブリック・アクセス --roles "Content Reader" \
--service-name cloud-object-storage \
--service-instance $INSTANCE_ID \
--resource-type bucket \
--resource $BUCKET_NAME

【참고】 IBM Cloud Object Storage (ICOS) 버킷의 Public Access 사용(curl)



버킷별로 게시하는 명령을 실행합니다.

h tps : // c ぉ d. 이 bm. 코 m / 아피도 cs / 이아 mpo cy - 마나게 멘 t #c
export ACCESS_TOKEN=`ibmcloud iam oauth-tokens | head -n 1 | awk '{print $5}'`
export ACCOUNT_ID=`ibmcloud account show | grep ID | awk '{print $3}'`
export INSTANCE_ID=`ibmcloud resource service-instance khayama-cos | grep GUID | awk '{print $2}'`

curl -X POST \
'https://iam.cloud.ibm.com/v1/policies' \
-H "Authorization: $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
  "type": "access",
  "subjects": [
    {
      "attributes": [
        {
          "name": "access_group_id",
          "value": "AccessGroupId-PublicAccess"
        }
      ]
    }
  ],
  "roles":[
    {
      "role_id": "crn:v1:bluemix:public:cloud-object-storage::::serviceRole:ContentReader"
    }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "'$ACCOUNT_ID'"
        },
        {
          "name": "serviceName",
          "value": "cloud-object-storage"
        },
        {
          "name": "serviceInstance",
          "value": "'$INSTANCE_ID'"
        },
        {
          "name": "resourceType",
          "value": "bucket"
        },
        {
          "name": "resource",
          "value": "'$BUCKET_NAME'"
        }
      ]
    }
  ]
}'

디렉토리 목록에 필요한 index.html 다운로드



GitHub에서 복제합니다.

nolanlawson/pretty-s3-index-html
git clone https://github.com/nolanlawson/pretty-s3-index-html.git
cd pretty-s3-index-html

콘텐츠 유형을 지정하여 업로드


export ENDPOINT=s3.jp-tok.cloud-object-storage.appdomain.cloud

curl -X PUT "https://$BUCKET_NAME.$ENDPOINT/index.html" -H "x-amz-acl: public-read" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: text/html" -T index.html

디렉토리 목록 확인



웹에 액세스하면 확인할 수 있습니다.
open "https://$BUCKET_NAME.$ENDPOINT/index.html"



사이고에게



이와 같이 클라우드에서는 서버리스로 쉽게 디렉토리 리스팅을 실현할 수 있었습니다.
파일을 다운로드하는 웹 사이트를 쉽게 만들 수 있다는 것을 알았습니다.

좋은 웹페이지 즐겨찾기