aws/credentials设置和boto.exception
Heroku不提供来自 aws s3 bucket 的图像,我正在使用django作为后端,我已经迁移了我的应用程序. Heroku是自动提供我的PC中的所有图像(例如在本地开发中使用的),还是我们必须再次上传所有图像? 在 heroku run python manage.py migrate 我会遇到这个错误 boto.exception.s3ResponseError:s3ResponseError:400不良请求 我的设置.py文件是: 在 """ Django settings for ecommerce project. Generated by 'django-admin startproject' using Django 1.11. For more information on this file, see https://docs.djangoproject.com/en/1.11/topics/settings/
24 2024-04-03
编程技术问答社区
AWS API查询的每秒请求数是多少?
每秒的请求是什么是BOTO-2.38/BOTO3进行的以下API调用的平均响应时间(往返)? conn=EC2(aws_access_key,aws_secret_key_id) Q1:images=conn.get_all_images(owners=['self']) Q2:instances=conn.get_only_instances() Q3:snapshots=conn.get_all_snapshots(owner='self') Q4:snapshot=conn.create_snapshot(volume_id, description) Q5:instance=conn.launch_instance() Q6:image=conn.create_image(instance_id,name,description) Q7:conn.deregister_image(imag
46 2024-04-03
编程技术问答社区
无法获得现货价格历史的最大结果--美国东部地区
当我检索" us-east-f1"或" us-east-1"中任何区域的现场历史价格时,结果始终少于200个价格,我需要单个区域和单个实例类型. 我如何取回大量结果? 例如: ec2 = boto3.client('ec2') t=datetime.datetime.now() - datetime.timedelta(0) f=datetime.datetime.now() - datetime.timedelta(90) response= ec2.describe_spot_price_history(InstanceTypes =['c3.4xlarge'],ProductDescriptions = ['Linux/UNIX'], AvailabilityZone = 'us-east-1a', StartTime= f, EndTime = t, MaxResults=1000) response =response['SpotPriceHistory'] 我的意思
40 2024-04-03
编程技术问答社区
获取与Instance相关的卷信息
我正在尝试检索与实例相关的所有卷. if volume.attachment_state() == 'attached': volumesinstance = ec2_connection.get_all_instances() ids = [z for k in volumesinstance for z in k.instances] for s in ids: try: tags = s.tags instance_name = tags["Name"] print (instance_name) except Exception as e: print e 但是,它无法按预期工作. 解决方案 您可以在get_all_instances
16 2024-04-03
编程技术问答社区
boto3错误:botocore.exceptions.nocredentialserror:无法通过shell脚本找到凭据
当我从CLI(终端)跑步时,它可以通过SSO找到凭据并通过 例如: 2022-06-18 07:38:36,421 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role 2022-06-18 07:38:36,421 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role-with-web-identity 2022-06-18 07:38:36,421 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: sso 2022-06-18 07:38:36,422 - MainThread - botocore.loaders - DEBUG - Load
16 2024-04-03
编程技术问答社区
aws boto-how to create instance and return instance_id
我想创建一个python脚本,我可以通过参数/输入来指定实例类型,然后附加额外的EBS(如果需要). ec2 = boto3.resource('ec2','us-east-1') hddSize = input('Enter HDD Size if you want extra space ') instType = input('Enter the instance type ') def createInstance(): ec2.create_instances( ImageId=AMI, InstanceType = instType, SubnetId='subnet-31d3ad3', DisableApiTermination=True, SecurityGroupIds=['sg-sa4q36fc'], KeyName='key' ) ret
24 2024-04-03
编程技术问答社区
对Python客户端的boto请求进行远程签名
我想从Python客户端直接将文件上传/下载到Amazon S3,并在某些用户机器中运行.我有一台服务器,该服务器可容纳访问ID和秘密键,因为它们不能在用户方面,可用于生成预签名的URL,并且客户端可以通过API连接以请求这些预签名的URL . 我找到了许多JS的示例,但没有一个与Python一起在客户端(而非基于Web)的示例.我试图在客户端使用BOTO,但是似乎没有简单的方法可以利用Boto API,但是用远程签名签名请求. 有没有一种方法可以使用boto来处理客户端的传输?到目前为止,最好的方法是用Python-Requests构建自己的客户,但我认为重新发明方向盘的声音听起来很像. 到目前为止注入一个API调用以进行远程签名.但这似乎非常棘手,脆弱且难以维护. Boto还有其他方法可以实现这一目标吗? 解决方案 而不是签署URL(通常在通过Web浏览器拨打电话时使用),您应该通过 aws安全令牌服务(STS). 从您的服务器中,发行 GetFedera
16 2024-04-03
编程技术问答社区
带有进度条的S3 Python下载
无法对我改编此代码的初始线程发表评论(跟踪使用boto3和回调的S3文件的下载进度),希望有人可以在这里帮助我.我能够使用此代码来显示一个用于文件上传的进度栏,现在我需要做同样的事情以从AWS S3下载文件.任何帮助将不胜感激! 我知道我需要从S3而不是本地文件系统中获取文件的大小.我敢肯定,我需要调整一些愚蠢的代码来完成这项工作.希望有人能散发出一些灯光. :) def upload_to_aws(local_file, bucket, s3_file): s3 = boto3.client('s3', aws_access_key_id=s3ak, aws_secret_access_key=s3sk) statinfo = os.stat(local_file) up_progress = progressbar.progressbar.ProgressBar(maxval=statinfo.st_s
18 2024-04-03
编程技术问答社区
我可以从AWS python lambda中更新SSM参数值吗?
在AWS lambda中使用Python我想从SSM参数存储中检索一个参数,然后修改它. 所以我可以像这个 那样轻松地检索它 ssm = boto3.client('ssm') parameter = ssm.get_parameter(Name='/my_test/test', WithDecryption=True) 如何使用客户端更新此参数的字符串值? if((parameter['Parameter']['Value']) == 'ONE_STRING'): // can i update the parameter value here? 解决方案 用以下代码求解 if((parameter['Parameter']['Value']) == 'ONE_STRING'): ssm.put_parameter( Name='/my_test/test', Value='NEW_STRING'
22 2024-04-03
编程技术问答社区
AWS SES。用户未被授权在资源上执行 ses:SendEmail。
我有以下python/boto3脚本,直接从 aws文档: import boto3 from botocore.exceptions import ClientError # Replace sender@example.com with your "From" address. # This address must be verified with Amazon SES. SENDER = "mailman@sender.com" # Replace recipient@example.com with a "To" address. If your account # is still in the sandbox, this address must be verified. RECIPIENT = "joe@receiver.com" # If necessary, replace us-west-2 with the AWS Region you're usi
24 2024-04-03
编程技术问答社区
如何改变aws-ec2实例类型?
我想使用boto3更改AWS-EC2实例类型(例如,从微型到大型或vice-vice-cice-eft等). 在更改EC2现代实例类型时需要照顾的因素是什么. 这是我的代码: def get_ec2_boto3_connection(region, arn): sess = Boto3Connecton.get_boto3_session(arn) ec2_conn = sess.client(service_name='ec2', region_name=region) return ec2_conn def change_instance_type(arn,region): ec2_conn=get_ec2_boto3_connection(region,arn) ec2_conn.modify_instance_attribute(InstanceId=id,Attrib
18 2024-04-03
编程技术问答社区
Python Boto3 AWS多部分上传语法
我正在成功使用AWS进行身份验证,并在存储桶对象上使用" put_object"方法上传文件.现在,我想使用Multipart API将其用于大文件.我在这个问题中找到了公认的答案: 如何使用boto3 但是,当试图实施时,我会遇到"未知方法"错误.我究竟做错了什么?我的代码在下面.谢谢! ## Get an AWS Session self.awsSession = Session(aws_access_key_id=accessKey, aws_secret_access_key=secretKey, aws_session_token=session_token, region_name=region_type) ... # Upload the file to S3 s3 = self.awsSession.resource('s3') s3.Bucket('prodbucket').put_object(Key=fileToUpload
22 2024-04-03
编程技术问答社区
我在使用AWS翻译api时得到ThrottlingException
我正在运行此代码以翻译 translate = boto3.client(service_name='translate', aws_access_key_id="secret", aws_secret_access_key="secret", region_name='eu-central-1', use_ssl=True) translate.translate_text(Text=data,SourceLanguageCode="de",TargetLanguageCode="en").get("TranslatedText") 代码在大多数测试中都正确运行,但突然引发了以下错误: An error occurred (ThrottlingException) when calling the TranslateText operation (reached max retries: 4): Rate exceeded 如何处
28 2024-04-03
编程技术问答社区
Python Boto3 MFA与Access_Key_Id、Access_Key、Session_Token和MFA建立连接,不需要传递RoleArn。
我们可以使用python boto3与仅使用以下的python boto3建立一个AWS连接,并获取具有临时会话的列表?并且不通过Rolearn? _AWS_ACCESS_KEY_ID, _AWS_SECRET_ACCESS_KEY, _aws_session_token, MFA代码 我只有低于临时会话,我应该如何通过,因为我没有rolearn 我还检查了帖子 boto3 sessions and aws_session_token management 但是所有人都在使用rolearn. 解决方案 通过运行此代码工作,这并不需要Rolearn import boto from boto.s3.connection import S3Connection from boto.sts import STSConnection # Prompt for MFA time-based one-time password (TOTP) mfa
14 2024-04-03
编程技术问答社区
S3预签名的网址,没有路径
我需要A可以让客户端将数据上传到S3而不显示文件的完整位置(路径). AWS S3预先签名的URL可以使用吗? 我正在使用boto3这样 s3.client.generate_presigned_url( ClientMethod='put_object', ExpiresIn=7200, Params={'Bucket': BUCKET, 'Key': name} ) 但结果将是: https://s3.amazonaws.com/MY_BUCKET/upload/xxxx-xxxx/file-name.bin?AWSAccessKeyId=XXXX&Signature=XXXX&Expires=XXXX 我需要类似的东西不会在路径(/upload/xxxx-xxxx/file-name.bin)中显示关键名称. 如果没有预先签名的URL,我还有哪些其他解决方案? 解决方案 我相信最好的方法是用AWS CloudFront分发文件
18 2024-04-03
编程技术问答社区
多部分上传至S3的哈希验证
我正在寻找命令行工具或python库,该工具允许将大文件上传到S3,并使用哈希验证. 有一个 aws aws文章可以通过提供content-md5标头自动完成. 但是,尚不清楚哪种命令行工具可以或不执行此操作: 用多部分上传上传的文件没有MD5SUM. s3cmd 对此没有任何说法,但它支持MD5用于同步功能 boto3/s3transfer的upload_file()方法实际上没有说什么 您是否有有关这些工具中的任何一个的信息,或其他工具或python库或boto3 shippet,可以使用RSYNC的可靠性? 处理大型文件上传到S3 解决方案 询问官方aws cli(boto3)工具后,我可以得出结论,aws cli 始终验证每个上传,包括多部分. 使用官方的MD5 ETAG验证进行单部分上传,它会逐块.此外,您还可以启用SHA256验证,仍然逐块. aws cli但是不会验证整个组装文件.为此,您需要使用一些微小的python函
18 2024-04-03
编程技术问答社区
不是空的gcs bucket返回 "只能将str(不是 "字节")连接到str"
我是Google Clould存储的新手.我正在使用教程插件使用BOTO创建一个对Google Cloud Storage的存储桶.请在下面找到代码: import boto import gcs_oauth2_boto_plugin import time GOOGLE_STORAGE = 'gs' LOCAL_FILE = 'file' CLIENT_ID = "hnsdndsjsksoasjmoadsj" CLIENT_SECRET = "jdijeroerierper-er0erjfdkdf" gcs_oauth2_boto_plugin.SetFallbackClientIdAndSecret(CLIENT_ID, CLIENT_SECRET) now = time.time() # Your project ID can be found at https://console.cl
14 2024-04-03
编程技术问答社区
aws CLI比使用boto3快吗?
我的软件包存储在S3存储桶中.我需要阅读每个软件包的元数据文件,然后将元数据传递到程序.我使用boto3.resource('s3')在Python中读取这些文件.该代码需要几分钟才能运行.虽然我使用AWS CLI sync,但它下载的元素速度比Boto快得多.我的猜测是,如果我不下载并只读取元文件,则应该更快.但事实并非如此.可以肯定地说AWS CLI比使用Boto更快? 解决方案 根据我的经验,我没有看到CLI比Boto快.正如Hellov所提到的CLI是由Pros撰写的,并以最佳级别维护了Boto由用户大三的Master撰写的. 如果您只需要元数据,并且想使用boto快速使用脚本,我强烈建议使用客户端代替资源,而一种名为 head_object with pload and ploads download and not下载且元数据在JSON响应结构中可以检索. 其他解决方案 aws command-line接口(cli)实际上使用了boto本身,因此不是"更
26 2024-04-03
编程技术问答社区
如何使用django-storages和boto3获得aws s3对象密钥
我使用AWS S3使用Django-Storage和Boto3用于媒体和静态文件.我需要获取AWS S3存储桶的对象键,以便我可以为该对象生成一个URL. client = boto3.client('s3') bucket_name = 'django-bucket' key = ??? u = client.generate_presigned_url('get_object', Params = {'Bucket': bucket_name, 'Key': key,'ResponseContentType':'image/jpeg', 'ResponseContentDisposition': 'attachment; filename="your-filename.jpeg"'}, ExpiresIn = 1000) 这些在我的设置中: STATICFILES_LOCATION = 'static' MEDIAFILES_LOCATION = 'media'
8 2024-04-03
编程技术问答社区
在python中为boto3文件加密创建SSECustomerKey的正确方法是什么?
我正在使用boto3和我的Django应用程序将媒体上传到S3.但是我在使用"使用客户提供的加密密钥的服务器端加密" 加密服务器上遇到了麻烦 我正在使用boto3的object.put()API上传文件并指定加密密钥.但是我会遇到以下错误. "键的计算出的MD5哈希与Hash不匹配 提供的." 我不确定如何创建将在服务器端匹配的密钥的MD5.这是我的代码. password = "32characterslongpassphraseneeded".encode('utf-8') encryption_key = hashlib.md5(password).hexdigest() encryption_key_md5 = hashlib.md5(encryption_key.encode('utf-8')).hexdigest() import boto3 s3 = boto3.resource('s3') key = s3.Object(bucket_name, k
28 2024-04-03
编程技术问答社区