【阿里雲ECS進階訓練營】day05ACA認證OSS實驗彙總

實驗一:雲存儲OSS使用初體驗

1.1實驗概述

開始實驗後,系統會自動去創建一臺Linux ECS。其中,創建的ECS中已經部署了web應用和OSS python SDK。在本實驗中,已創建的ECS作爲web服務器,瀏覽器中直接訪問其IP地址會顯示包含四個小圖片的頁面,並且四個圖片都保存在ECS本地。通過調用OSS API將四個圖片上傳到OSS中,同時刪除保存在ECS本地的四個圖片,此時訪問ECS IP將會看到頁面中沒有圖片可以顯示。爲了在頁面中顯示原有的四個圖片,實驗中需要修改web應用服務器根目錄下默認訪問頁面中的圖片地址,將圖片地址修改爲四個圖片分別在OSS中的訪問地址。
在這裏插入圖片描述

實驗目標
完成此實驗後,可以掌握的能力有:

  1. 通過阿里雲管理控制檯管理對象存儲服務OSS

  2. 在實際的web開發中使用對象存儲服務OSS存儲頁面中的圖片

  3. 調用OSS API上傳圖片

學前建議
4. 掌握Linux基本命令;

  1. 瞭解OSS的基本概念

1.2實驗步驟

1.背景介紹:
阿里雲對象存儲(Object Storage Service,簡稱OSS),是阿里雲對外提供的海量、安全、低成本、高可靠的雲存儲服務。用戶可以通過調用API,在任何應用、任何時間、任何地點上傳和下載數據,也可以通過用戶Web控制檯對數據進行簡單的管理。OSS適合存放任意文件類型,適合各種網站、開發企業及開發者使用。

    阿里雲OSS圖片處理服務(Image Service,簡稱 IMG) ,是阿里雲OSS對外提供的海量、安全、低成本、高可靠的圖片處理服務。用戶將原始圖片上傳保存在OSS上,通過簡單的 RESTful 接口,在任何時間、任何地點、任何互聯網設備上對圖片進行處理。圖片處理服務提供圖片處理接口,圖片上傳請使用OSS上傳接口。基於IMG,用戶可以搭建出跟圖片相關的服務。圖片服務處理的圖片來自於OSS,所以圖片的上傳實際是上傳到OSS的同名Bucket中。 

    在真實的工作場景中,一般將圖片、音頻、視頻等存儲到OSS服務中,這樣可以極大的提高用戶的頁面訪問速度。

2.查看圖片分享網站

  1. 本小節將展示一個在ECS上已搭建的圖片分享網站,以及圖片分享網站的源碼。

  2. 首先,在瀏覽器中新建一個頁面。然後,在瀏覽器的地址欄中,輸入本次實驗分配的ECS實例 彈性IP。查看到當前頁面中顯示1張“花園”的圖片,該圖片實際是由4張小圖片組成的。

在這裏插入圖片描述

  1. 遠程登錄到ECS服務器,查看圖片並分享網站的源碼。登錄信息請使用本實驗 實驗資源 提供的ECS服務器的 外網地址,用戶名和 密碼。

  2. 登錄到ECS服務器後,執行如下命令,進入網站系統的根目錄。

# cd /alidata/www/default 

然後,使用如下查看命令,查看保存在根目錄下的四張圖片01.png,02.png,03.png和04.png,也就是圖片分享網站所展示的4張小圖片。

# ls

在瀏覽器中,新建一個頁面,並在地址欄中輸入 <ECS實例外網地址>/01.png,可以查看到01.png的圖片內容。同理,可以查看"02.png","03.png"以及“04.png”的圖片內容。
在這裏插入圖片描述

  1. 使用如下命令,查看網站首頁的源碼,可以看到圖片分享網頁中顯示的圖片,是從網站根目錄 /alidata/www/default 中,讀取圖片 01.png,02.png,03.png 和 04.png拼接的。

cat index.html

在這裏插入圖片描述
3.向OSS中上傳服務器本地圖片

  1. 本小節將存儲在本地的圖片上傳到OSS Bucket中,從而,圖片分享網站將從OSS Bucket中讀取圖片,本地無需保存圖片。

  2. 在ECS實例的 /alidata/www/default 目錄中,執行如下命令,進入 cfg.json 的編輯頁面,並修改OSS的配置信息。

# vim cfg.json

在編輯頁面中,修改如下參數信息。

id:雲中沙箱 實驗資源 分配的 AK ID 值;

secret:雲中沙箱 實驗資源 分配的 AK Secret 值

endpoint:請根據下面的 OSS地域與Endpoint對應關係表,輸入 實驗資源 所分配 地域 相對應的 外網Endpoint
。例如:分配的 地域

爲 華東1(杭州),則輸入 oss-cn-hangzhou.aliyuncs.com。

bucket:雲中沙箱 實驗資源 分配的 OSS資源 Bucket 名稱

object_dir:雲中沙箱 實驗資源 分配的 OSS資源 Object路徑。

完成後,首先按 esc鍵 退出編輯狀態,然後輸入下面命令保存並退出編輯頁面。

 :wq 

OSS地域與外網Endpoint對應關係表:

地域 外網Endpoint
華東 1 (杭州) oss-cn-hangzhou.aliyuncs.com
華東 2 (上海) oss-cn-shanghai.aliyuncs.com
華北 1 (青島) oss-cn-qingdao.aliyuncs.com
華北 2 (北京) oss-cn-beijing.aliyuncs.com
華南 1 (深圳) oss-cn-shenzhen.aliyuncs.com
3. 執行如下命令,將01.png上傳到OSS,該腳本使用OSS 提供的API接口put_object_from_file()將本地文件上傳到 實驗資源 分配的 Object路徑 中。
//因爲這裏的環境已經有python的sdk環境,所以這裏能直接使用。

python oss_upload.py 01.png

然後,執行相同命令,只把 01.png 改爲 02.png 等,將02.png、03.png 和 04.png三個圖片分別上傳到OSS。接下來,用戶將訪問OSS管理控制檯,並查看上傳到OSS的文件。
4.然後登陸到OSS控制檯查看圖片的信息。
在這裏插入圖片描述
4.使用OSS存儲圖片分享網站

  1. 本小節中,搭建的圖片分享網站將圖片等靜態資源,存儲在OSS中,並直接從OSS中讀取。

  2. 返回ECS實例終端頁面,執行下面命令進入alidata/www/default目錄。

# cd /alidata/www/default

然後執行如下命令,刪除當前目錄中的所有“.png”文件,也就是,圖片分享網站中讀取的4張圖片01.png, 02.png, 03.png 和 04.png。

# rm -rf *.png

執行查看文件命令,查看當前目錄中無圖片文件,證明圖片已刪除。

# ls

在這裏插入圖片描述
3. 打開(在瀏覽器的地址欄中,輸入 實驗資源 分配的ECS 外網地址 並訪問)或刷新圖片分享網站主頁面,查看到當前頁面中所有圖片均無法正常顯示。這是因爲圖片分享網站讀取的是本地圖片文件,而本地存儲的圖片文件已被刪除,因此無法讀取到圖片信息。

注意:若訪問頁面仍舊可以顯示圖片,可能是由於瀏覽器緩存問題,建議清理下瀏覽器的緩存或者換一個瀏覽器查看ECS服務器主頁。
在這裏插入圖片描述
4. 接下來,將重新配置index.html中的圖片訪問信息,按照以下步驟將圖片鏈接修改爲上傳到OSS的圖片的URL訪問地址:
5. 執行如下命令返回ECS服務器的/alidata/www/default目錄下,並進入服務器訪問首頁 index.html 的編輯界面。

# cd /alidata/www/default
# vim index.html

將圖片的src屬性改爲OSS上圖片的URL。
在這裏插入圖片描述
改變後保存文件。在瀏覽器中打開新建地址發現又可以顯示圖片了。

實驗二:使用雲存儲OSS的API上傳和下載文件

1.實驗概述

實驗概述
實驗開始後,系統會自動去創建一臺Linux ECS。且ECS實例已經部署了OSS python SDK。用戶可以使用OSS Python SDK來訪問OSS服務,包括上傳文件,下載文件,查看文件列表等。默認這些程序是寫在一個腳本文件裏,通過Python程序可以執行。OSS上傳方式大致可以分爲兩類:簡單上傳和分塊上傳。本實驗通過OSS的Python SDK,使用簡單上傳的方式實現小文件的上傳和下載;最後指導您實現如何去刪除OSS Bucket。

實驗目標
完成此實驗後,可以掌握的能力有:

  1. 使用OSS python SDK來調用OSS API

  2. 掌握OSS簡單上傳的方式

  3. 掌握OSS分塊上傳的方式

  4. 使用OSS python SDK快速刪除OSS Object

學前建議

  1. 瞭解Linux的基本命令操作;

  2. 瞭解Python語言的基本使用方法;

2.實驗步驟

2.1調用OSS API上傳小文件

  1. OSS 上傳方式分爲兩類:簡單上傳和分塊上傳;其中,簡單上傳由於不支持斷點續傳,適合用於上傳小文件;而分塊上傳支持斷點續傳,適合上傳比較大的文件,一般超過100MB 的文件都推薦使用分塊上傳。 本小節中,使用OSS Python SDK 調用 OSS API,將用戶本地的小文件上傳到本次實驗分配的 Object路徑 中。
  2. 登錄到 ECS 服務器後,在使用 OSS API 進行文件上傳和下載之前,用戶需配置阿里雲賬號的 AccessKeyID, AccessKeySecret 和 Endpoint 信息(均可從 實驗資源 獲取),以便於通過 OSS 的權限驗證。在 ECS 命令行中,使用命令 cd aliyun-lab 進入 aliyun-lab 目錄。 然後,使用命令 vim configure.json ,configure.json 文件用於提供調用 OSS API 時所需的公共參數。
    在這裏插入圖片描述

id-參數值爲本實驗中,實驗資源 分配的AK ID;

secret-參數值爲本實驗中,實驗資源 分配的AK Secret;

endpoint-參數值爲本實驗中,實驗資源 的“地域”對應的“外網Endpoint”數值。比如:提供的“地域”爲“華東 1(杭州)”,則選擇“華東 1(杭州)”的“外網Endpoint”。
OSS 地域與外網 Endpoint 的對應關係如下表:
華東 1 (杭州)
oss-cn-hangzhou.aliyuncs.com
華東 2 (上海)
oss-cn-shanghai.aliyuncs.com
華北 1 (青島)
oss-cn-qingdao.aliyuncs.com
華北 2 (北京)
oss-cn-beijing.aliyuncs.com
華南 1 (深圳)
oss-cn-shenzhen.aliyuncs.com
注意:任何鍵值對中都不可以有換行或空格符,否則就會報錯
3. 完成 OSS 的基本配置信息後,在 aliyun-lab 路徑下,執行命令 vim object_upload.py ,修改腳本文件 object_upload.py 。此腳本通過調用 OSS API,上傳本地文件 (__file_name:本地文件路徑) 到 bucket 中,並重命名 object (__object_name:Bucket中Object名稱) 。在代碼的 #調用OSS API的put_object()上傳文件 下方,添加如下的代碼,完成修改後,保存腳本並退出編輯頁面。

with open(__file_name,'rb') as fileobj:

             bucket.put_object(__object_name, fileobj)

在這裏插入圖片描述
4. 執行如下命令,運行腳本程序。將本地文件 lab.txt 上傳到本實驗分配 OSS bucket 的 Object 路徑下,並重命名爲 lab_object.txt 。

python object_upload.py <oss bucket名稱> lab.txt <oss object路徑>/lab_object.txt

結果:上傳成功
在這裏插入圖片描述

2.2調用OSS API下載小文件

  1. 在真實的工作環境中,存儲在 OSS 環境下的文件資源,可能由於業務需求,需要下載到本地,進行審計等。本小節將介紹如何將 OSS 中的對象文件通過 API 下載到本地服務器。
  2. 返回 ECS 服務器訪問終端,在 ECS 的 aliyun-lab 目錄下,執行命令 vim object_download.py ,修改腳本文件 object_download.py 。此腳本通過調用 OSS API,下載 OSS的 bucket 中名稱爲 __object_name 的 object 到本地,並重命名爲 __local_name 。在代碼的 #調用OSS API的get_object_to_file()下載object 下方。添加如下的代碼,完成修改後,保存腳本。
bucket.get_object_to_file(__object_name, __local_name)

在這裏插入圖片描述
3. 執行如下命令,將 OSS 存儲的文件 lab_object.txt 下載到本地,並重命名爲 lab_local.txt 。下載成功後,執行命令 ls ,列出當前目錄下所有的文件,可以看到文件lab_local.txt 已經保存在當前目錄下。

python object_download.py <oss bucket 名稱> <oss object路徑>/lab_object.txt lab_local.txt

在這裏插入圖片描述
4. 執行命令 cat lab_local.txt 和 cat lab.txt ,分別查看原文件與下載後的文件,對比兩個文件中的內容,可以發現兩個文件中的內容一致,證明 object 下載併成功保存到本地。

在這裏插入圖片描述

2.3調用OSSAPI刪除Object

  1. 在真實的生產環境中,由於 OSS 主要用於存儲對象文件等。因此,爲了避免大量的垃圾文件存在,建議用戶對垃圾資源進行清理,這樣不僅可以節約資源也可以節約用戶在存儲服務中的開銷。本小節中,用戶將體驗如何通過調用OSS API,清理垃圾 Object 資源。
  2. 返回ECS服務器訪問終端界面,然後,執行 vim object_delete.py ,修改腳本文件 object_delete.py 。此腳本通過調用 OSS API ,刪除 OSS Bucket 中的 object。在代碼的 #調用OSS API batch_delete_objects(),批量刪除objects 下方。添加如下的代碼,完成修改後,保存腳本。
result = bucket.batch_delete_objects([__object_name])

在這裏插入圖片描述
執行命令 python object_delete.py <Bucket 名稱> <Object路徑>/lab_object.txt 。刪除 bucket 中的指定路徑的 object 。

2.4創建OSS Bucket

  1. 在真實的生產工作環境中,用戶在上傳或者管理 OSS 中的存儲文件之前,首先需要在 OSS 中創建一個 Bucket,也就是 OSS 的存儲空間。
  2. 在 ECS 服務器訪問終端界面中,執行命令: cd aliyun-lab/ ,進入 aliyun-lab/ 目錄下。輸入命令:vim bucket_create.py ,修改腳本文件 bucket_create.py 。修改創建 bucket 的 python 腳本。用戶可以使用此腳本調用OSS 創建Bucket的 API。在代碼的 #調用OSS API的create_bucket()創建bucket 下方。添加如下的代碼,完成修改後,保存並退出。
result = bucket.create_bucket()

注意:確保插入的代碼,與上下文中非註釋的代碼縮進一致。否則運行腳本時會報錯。
在這裏插入圖片描述
執行命令:python bucket_create.py lab ,其中 lab 爲用戶自定義的 bucket 名稱,運行腳本程序,創建一個新的bucket lab-xxxx 。
注意:創建的新bucket名稱爲:<用戶輸入的自定義bucket名稱>-< Access Key ID信息>。這是由於 OSS bucket 全局唯一,避免bucket名稱已存在而導致創建錯誤,此腳本會自動將 Access KeyID 信息,作爲 bucket 名稱的後綴。輸入 bucket 名稱時,必須符合如下的 Bucket 命名規則,否則,無法成功創建 bucket。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章