如何使用Boto3凭证进行AWS AWIS UrlInfo API请求

2024-09-29 23:15:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以使用Boto3进行身份验证并连接到AWSQueryConnection,但是每当我尝试使用“UrlInfo”方法获取关于URL的信息时,我都会收到一个没有数据的204响应。你知道吗

import boto
from boto.connection import AWSQueryConnection

conn = AWSQueryConnection(aws_access_key_id='', aws_secret_access_key='', host='awis.amazonaws.com')

response = conn.make_request('UrlInfo', params={
  'Url' : 'http://reddit.com',
  'ResponseGroup': 'LinksInCount'
})

print(response.status)

我使用这个模块的方式有什么问题吗?你知道吗


Tags: 方法keyimportcom身份验证aws信息url
1条回答
网友
1楼 · 发布于 2024-09-29 23:15:34

我最近也在做类似的事情,下面是我使用aws-requests-auth得到的代码,它内置了对boto3的支持:

注意:主机、区域和报价方法安全参数)

import requests
from aws_requests_auth.boto_utils import BotoAWSRequestsAuth

auth = BotoAWSRequestsAuth(
  aws_host='awis.us-west-1.amazonaws.com',
  aws_region='us-west-1',
  aws_service='awis'
)

url = 'https://awis.us-west-1.amazonaws.com/api'
query_params = quote(
  'Action=UrlInfo&ResponseGroup=LinksInCount&Url=google.com',
  safe = '/-_.~=&'
)

response = requests.get(url + '?' + query_params, auth=auth)
print(response.content)

如果您喜欢在没有任何第三方库的情况下执行此操作,则可以始终执行以下操作:

from boto3.session import Session

aws_credentials = Session().get_credentials()
print(aws_credentials.access_key)
print(aws_credentials.secret_key)

然后按照AWIS Documentation - Calculating Signatures中描述的完整有趣的签名过程进行。你知道吗

相关问题 更多 >

    热门问题