• 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'
            )
  • 相关阅读:
    使用EF批量新增数据十分缓慢
    EF中获取当前上下文的表名
    下拉框停用数据的处理
    CEILING保留n位小数向上取整
    MVC ValidationAttribute 验证一个字段必须大于另一个字段
    EF通过导航属性取出从表的集合后,无法删除子表
    我得新博客上线了采用Vue+Layui的结合开发,后台采用asp.net mvc
    CTS,CLS,CLR解释
    Linq与委托
    C#4.0的十种语法糖
  • 原文地址:https://www.cnblogs.com/champaign/p/py3-aws-s3.html
Copyright © 2020-2023  润新知