标签: boto3

使用Boto3上传到Amazon S3并返回公共网址

我试图使用Boto3将文件上传到s3并将上传的文件公开并将其作为网址返回.

class UtilResource(BaseZMPResource):
class Meta(BaseZMPResource.Meta):
    queryset = Configuration.objects.none()
    resource_name = 'util_resource'
    allowed_methods = ['get']

def post_list(self, request, **kwargs):

    fileToUpload = request.FILES
    # write code to upload to amazone s3
    # see: https://boto3.readthedocs.org/en/latest/reference/services/s3.html


    self.session = Session(aws_access_key_id=settings.AWS_KEY_ID,
                  aws_secret_access_key=settings.AWS_ACCESS_KEY,
                  region_name=settings.AWS_REGION)

    client = self.session.client('s3')
    client.upload_file('zango-static','fileToUpload')


    url = "some/test/url"
    return self.create_response(request, {
        'url': url // return's public url of uploaded file 
    })
Run Code Online (Sandbox Code Playgroud)

我搜索了整个文档,我找不到任何链接,描述如何做到这一点,有人可以解释或提供任何资源,我可以找到灵魂?

django-models amazon-s3 boto3

24
推荐指数
3
解决办法
2万
查看次数

Boto3:动态获取凭据?

我正在努力找出如何从我的代码动态获取我的aws_access_key_id和aws_secret_access_key.

在boto2中,我可以执行以下操作:boto.config.get_value('Credentials', 'aws_secret_access_key')但我似乎无法在boto3中找到类似的方法.如果我看到的话,我能够找到钥匙,boto3.Session()._session._credentials但这对我来说似乎是所有黑客的母亲,我宁愿不去那条路.

amazon-web-services python-3.x boto3

24
推荐指数
3
解决办法
2万
查看次数

AWS:通过boto3发布Lambda函数的SNS消息(Python2)

我正在尝试发布到SNS主题,然后通知Lambda函数以及SQS队列.我的Lambda函数会被调用,但CloudWatch会记录我的"event"对象是None.boto3文档声明使用kwarg MessageStructure ='json'但会抛出ClientError.

希望我已经提供了足够的信息.

示例代码:

import json
import boto3

message = {"foo": "bar"}
client = boto3.client('sns')
response = client.publish(
    TargetArn=arn,
    Message=json.dumps(message)
)
Run Code Online (Sandbox Code Playgroud)

amazon-sns python-2.7 boto3 aws-lambda

23
推荐指数
3
解决办法
4万
查看次数

如何使用Amazon SNS和Python以及boto3发送带有自定义发件人ID的SMS

文件建议使用该消息属性,但我似乎无法找出什么属性名称使用.

这项工作到目前为止:

sns = boto3.client('sns', region_name='eu-west-1')

sns.publish(
  PhoneNumber='+491701234567',
  Message='hi there',
  MessageAttributes={
    'AWS.SNS.SMS.SenderID': {
      'DataType': 'String',
      'StringValue': 'MySenderID'   
    }    
  }   
)  
Run Code Online (Sandbox Code Playgroud)

SMS已发送,但发件人ID字段中包含一些(随机?)值.所以我的消息属性设置似乎被忽略了.设置自定义发件人ID的正确方法是什么?

python sms amazon-web-services amazon-sns boto3

23
推荐指数
2
解决办法
6624
查看次数

从DynamoDB获取项目时,"提供的关键元素与架构不匹配"错误

这是表分区键设置 在此输入图像描述

表格内容 在此输入图像描述

当我试图从表中获取项目时,它会打印此错误

botocore.exceptions.ClientError:调用GetItem操作时发生错误(ValidationException):提供的键元素与架构不匹配

这是我的代码

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('testDynamodb')
response = table.get_item(Key={'userId': "user2873"})
item = response['Item']
print(item)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢.

python amazon-dynamodb boto3

22
推荐指数
3
解决办法
3万
查看次数

如何使用 python 和 boto3 检查 S3 存储桶中是否存在特定目录

如何检查 S3 中的特定目录中是否存在特定文件?我使用 Boto3 并尝试了这段代码(不起作用):

import boto3

s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
key = 'dootdoot.jpg'
objs = list(bucket.objects.filter(Prefix=key))
if len(objs) > 0 and objs[0].key == key:
    print("Exists!")
else:
    print("Doesn't exist")
Run Code Online (Sandbox Code Playgroud)

amazon-s3 python-3.x boto3

22
推荐指数
4
解决办法
5万
查看次数

如何使用boto3有条件地将项目插入到dynamodb表中

如果我有一个带有userId的散列键和productId的范围键的表,那么只有在使用boto3的dynamodb绑定不存在的情况下,如何才能将该项放入该表中?

对put_item的正常调用如下所示

table.put_item(Item={'userId': 1, 'productId': 2})
Run Code Online (Sandbox Code Playgroud)

我使用ConditionExpression的调用如下所示:

table.put_item(
    Item={'userId': 1, 'productId': 2}, 
    ConditionExpression='userId <> :uid AND productId <> :pid', 
    ExpressionAttributeValues={':uid': 1, ':pid': 3}
)
Run Code Online (Sandbox Code Playgroud)

但是每次都会引发ConditionalCheckFailedException.项目是否存在具有相同productId的项目.

python amazon-dynamodb boto3

21
推荐指数
2
解决办法
2万
查看次数

使用boto3将文件上传到S3时,file_upload()和put_object()之间的区别是什么

我正在使用boto3并尝试上传文件.这将是有益的,如果有人会解释之间的精确差异file_upload()put_object()S3存储方法boto3

  • 有任何性能差异吗?
  • 其中有没有人在幕后处理分段上传功能?
  • 两者的最佳用例是什么?

python amazon-s3 amazon-web-services boto3

21
推荐指数
3
解决办法
3959
查看次数

如何使用boto3创建ec2实例

是否可以在python中使用boto3创建ec2实例?Boto3文档在这里没有帮助,我在网上找不到任何帮助文档.请提供一些示例代码/链接.

python amazon-ec2 boto amazon-web-services boto3

20
推荐指数
4
解决办法
4万
查看次数

lambda python 3.9 运行时中的 botocore 包返回错误:“无法从 'botocore.docs' 导入名称“'DEPRECATED_SERVICE_NAMES'””

我正在使用 Lambda Python 3.9 运行时。我还在 Lambda 中使用 boto3 和 botocore 默认包。

今天,我突然收到此错误:“无法从‘botocore.docs’导入名称‘DEPRECATED_SERVICE_NAMES’””。当我将 botocore 包添加到 lambda 运行时时,我才成功修复了它。我想避免它,因为它会使层的大小增加 10 MB。

有什么帮助吗?谢谢

python lambda boto3

20
推荐指数
2
解决办法
2万
查看次数