日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【对象存储】关于阿里云OSS踩坑记录

發布時間:2024/1/8 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【对象存储】关于阿里云OSS踩坑记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? 前言:最近筆者通過PHP做了一個上傳文件到阿里云OSS存儲的程序,在上傳過程中官方文檔寫的很清楚,幾乎沒有遇到什么問題,但在訪問文件的過程中,遇到了問題,由于筆者的bucket是私有域,所以訪問時,首先要授權,通過sts生成臨時用戶和token,然后通過oss授權訪問接口生成臨時訪問鏈接,但是在生成訪問鏈接的時候官方文檔并沒有寫清楚調用方式,所以筆者把文檔重新梳理了一下。

一、STS拿到臨時AK和securityToken?(通過阿里云子用戶生成臨時用戶和令牌)

1、創建用戶子賬號

? ?1)云賬號登錄RAM控制臺。

? ?2)在左側導航欄的人員管理菜單下,單擊用戶。

? ?3)單擊新建用戶。

? ?4)輸入登錄名稱和顯示名稱。

? ?5)在訪問方式區域下,選擇編程訪問。

? ?6)單擊確定。

? ?7)勾選目標RAM用戶,單擊添加權限,被授權主體會自動填入。

? ?8)在添加權限頁面,為已創建子賬號添加AliyunSTSAssumeRoleAccess權限。

2、創建權限策略

? ?1)云賬號登錄RAM控制臺。

? ?2)在左側導航欄的權限管理菜單下,單擊權限策略管理。

? ?3)單擊新建權限策略。

? ?4)填寫策略名稱和備注。

? ?5)配置模式選擇可視化配置或腳本配置。

? ?以腳本配置為例,對ram-test(OSS的BUCKET)添加ListObjects與GetObject等只讀權限,在策略內容中配置腳本如下:

?

3、創建角色。

? ?1)云賬號登錄RAM控制臺。

? ?2)在左側導航欄,單擊RAM角色管理。

? ?3)單擊新建RAM角色,選擇可信實體類型為阿里云賬號,單擊下一步。

? ?4)在新建RAM角色頁面,填寫RAM角色名稱和備注,本示例RAM角色名稱為RamOssTest。

? ?5)選擇云賬號為當前云賬號。

? ?6)單擊完成。

? ?7)單擊為角色授權,被授權主體會自動填入。

? ?8)在添加權限頁面,選擇自定義權限策略,添加步驟2中創建的策略Ramtest。

? ?添加策略后,頁面如下圖所示:

4、通過STS API獲取STS AK與SecurityToken。

通過調用STS服務接口AssumeRole來獲取有效訪問憑證。STS SDK的安裝及使用詳見STS PHP SDK安裝及使用。

以下是官方代碼:

參數說明如下:

  • AccessKeyId、AccessKeySecret:子賬號AK信息。
  • RoleArn:需要扮演的角色ID。
  • RoleSessionName:用來標識臨時憑證的名稱,建議使用不同的應用程序用戶來區分。
  • Policy:在扮演角色的時候額外添加的權限限制。

注意:

? ? ?① ? ?REGION_ID?和?ENDPOINT

? ? ? ? ? ? ?這里的ENDPOINT并不是OSS云存儲的ENDPOINT

? ? ? ? ? ? ?具體請參考STS各區域的endpoint,接入地址

? ? ? ? ? ? ?下面列出部分:

? ? ? ? ? ? ?大中華地區都可以用,但最好是在OSS同地區

? ? ?② ? ?POLICY

? ? ?以上代碼是官方給出的代碼,但插入我的PHP項目中會報錯,因為php不支持json格式的變量聲明

? ? ?做以下修改

? ? ?③ ? ??最大的坑

?

? ? ?本來以為只用一個STS的SDK就夠了,原來還有一個core的SDK,官方并沒有對這SDK進行說明

? ? 而且STS的SDK在GITHUB上并沒有單獨下載的地方,所以要全部下載

? ? https://github.com/aliyun/aliyun-openapi-php-sdk

? ? 只使用下面兩個:

?


? ?關于調用方式

? ?由于core SDK并沒有用到命名空間,做以下修改

二、使用STS進行臨時授權訪問

參數說明如下:

  • accessKeyId?、第一步拿到的臨時AK
  • accessKeySecret?:第一步拿到的臨時AKS
  • securityToken?:第一步拿到的臨時令牌

最后:基本上第一步沒有問題的話,第二步會很流暢的運行,但就是因為官方文檔寫的不清不楚,導致在調用的時候好多都要靠猜,對第一次調用PHPer來說很不友好,此篇文章是自己第一次調用“授權訪問”的筆記,也希望對以后調用的人有幫助。

總結

以上是生活随笔為你收集整理的【对象存储】关于阿里云OSS踩坑记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。