zoukankan      html  css  js  c++  java
  • rgw使用boto3生成可以访问的预签名url

    前言

    如果想访问一个ceph里面的s3地址,但是又不想直接提供secrect key的时候,可以通过预签名的方式生成url

    生成方法

    下载boto3

    脚本如下

    cat s3.py
    
    import boto3
    from botocore.client import Config
    
    s3_host="http://192.168.0.201:7481"
    # Get the service client with sigv4 configured
    s3 = boto3.client('s3', aws_access_key_id = "test",aws_secret_access_key = "test",endpoint_url = s3_host, config=Config(signature_version='s3v4'))
    
    # Generate the URL to get 'key-name' from 'bucket-name'
    # URL expires in 604800 seconds (seven days)
    url = s3.generate_presigned_url(
        ClientMethod='get_object',
        Params={
            'Bucket': 'movie',
            'Key': '20200919211055.ps'
        },
        ExpiresIn=604800
    )
    
    print(url)
    

    执行以后

    [root@lab201 s3]# python s3.py 
    http://192.168.0.201:7481/movie/20200919211055.ps?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=604800&X-Amz-Credential=test%2F20201103%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Date=20201103T062621Z&X-Amz-Signature=b008a40341800b1ab7f701490e56b0597a05fe2e5c796d063c798e20564ef4a2
    

    生成上面的地址就可以直接下载需要权限才能访问的文件了

    上面的签名的是V4的,如果想生成V2的修改配置文件如下

    config=Config(signature_version='s3')
    

    再次执行:

    http://192.168.0.201:7481/movie/20200919211055.ps?AWSAccessKeyId=test&Expires=1604989885&Signature=mpGtOaHn0NHLIY5PXqqD6TJrDSE%3D
    

    生成上面的形式的url

  • 相关阅读:
    James 3.1服务器的安装与搭建
    Mybaits整合Spring
    动态sql
    Mybatis核心配置文件SqlMapConfig.xml
    Mapper动态代理方式
    WPF DatePicker
    UITableView(修改单元格)
    UITableView
    UIImageView
    UILabel
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13920079.html
Copyright © 2011-2022 走看看