python訪問aws-S3服務


創建本地 AWS 憑證文件

  1. 登錄 AWS 管理控制台 並通過以下網址打開 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 創建一個新用戶,其權限僅限於您希望您的代碼有權訪問的服務和操作。有關創建新 IAM 用戶的更多信息,請參閱創建 IAM 用戶 (控制台),並按照步驟 8 中的說明進行操作。

  3. 選擇 Download .csv 以保存 AWS 憑證的本地副本。

  4. 在您的計算機上,導航至主目錄,並創建 .aws 目錄。在基於 Unix 的系統 (例如 Linux 或 OS X) 上,它在以下位置:

    ~/.aws
     

    在 Windows 上,它在以下位置:

    %HOMEPATH%\.aws
     
  5. .aws 目錄中,創建名為 credentials 的新文件。

  6. 打開您從 IAM 控制台中下載的憑證 .csv 文件,並使用以下格式將其內容復制到 credentials 文件:

    [default]
    aws_access_key_id = your_access_key_id
    aws_secret_access_key = your_secret_access_key
  7. 保存 credentials 文件,並刪除在步驟 3 中下載的 .csv 文件。

您的共享憑證文件現在已在本地計算機上配置完畢,可以與 AWS 開發工具包一起使用。

 

Python 訪問示例:

import boto3

#初始化glacier client。
glacier = boto3.client("glacier")

#查看指定文件庫的基本信息。
vaultresult = glacier.describe_vault(vaultName='testvault')

print(vaultresult)

#讀取文檔並上傳到文件庫。請替換文件名和路徑。請保存方法返回信息中的archiveID等信息。該方法指針對文件大小不超過4GB.
file = open("path/filesname", "rb")

response = glacier.upload_archive(vaultName='testvault',body=file)

print(response)

#當文檔大小超過4GB,需要使用分段上傳。partsize 必須在 1048576 和 4294967296之間,且為2的倍數。
initiateResult = glacier.initiate_multipart_upload(vaultName='testvault',partSize='1048576')

uploadID = initiateResult["uploadId"]
print("uploadID:", uploadID)

#文檔分成幾部分,就需要執行以下命令幾次。
partresult = glacier.upload_multipart_part(
    body=file,
    range='bytes 0-1048575/*',
    uploadId=uploadID,
    vaultName='testvault',
)

#在上傳完所有部分之后,提交complete請求。
completeresult = glacier.complete_multipart_upload(
    vaultName='testvault',
    uploadId=uploadID
)

#如果想查看文件庫中的所有文檔基本信息,或檢索某個文檔,需要提交job。
#如果需要整個文件庫中的文檔清單,Type使用“inventory-retrieval”,檢索恢復某個文檔,使用“archive-retrieval”,如果是對某個文檔執行select操作,請使用“select”。
response = glacier.initiate_job(
                   vaultName='testvault',
                    jobParameters={
                        'Description': 'My inventory job',
                        'Type': 'inventory-retrieval',    
                        },
                    )

#檢索當前存在的job。
jobresult = glacier.list_jobs(vaultName='testvault')

#獲取某個任務檢索出的數據,可以是清單或文檔。如果是檢索某個文檔中的一部分,請添加range參數。 響應中的body為數據。
output = glacier.get_job_output(
        vaultName='testvault',
        jobId='string'
        )

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM