Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >django-具有多个S3存储桶的存储

django-具有多个S3存储桶的存储
EN

Stack Overflow用户
提问于 2012-05-02 18:05:53
回答 4查看 11.1K关注 0票数 28

我正在使用AWS,我将在我的应用程序中使用不同的存储桶。我也在使用Django-Storages。有没有办法指定我希望将文件上传到哪个存储桶中(例如,作为Save()函数中的参数或其他什么?)

我看到了这个Django - Error importing storages.backends,但我不明白它应该如何使用?!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-02 18:30:40

S3BotoStorage以存储桶名称作为参数。如果没有给出,它将使用AWS_STORAGE_BUCKET_NAME设置。这意味着如果你想让S3BotoStorage成为DEFAULT_FILE_STORAGE的默认存储后端,那么它必须使用默认的存储桶。

但是,您也可以在字段级别上分配存储:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.db import models
from storages.backends.s3boto import S3BotoStorage

class MyModel(models.Model):
    file_1 = models.FileField() # Uses default storage
    file_2 = models.FileField(storage=S3BotoStorage(bucket='other-bucket'))

编辑

评论已经失控了,所以我会更新我的答案。在实例基础上更改存储后端的参数不是Django存储API设计的目的。存储后端不知道模型实例,因为存储可以在模型上下文之外使用,例如与静态文件一起使用。并非完全不合理,但这并不是Django或django-storages想要解决的用法。我不期望你能在存储后端找到一个能帮你解决这个问题的地方。

文档描述了如何手动管理文件:https://docs.djangoproject.com/en/1.9/topics/files/#storage-objects至少需要将保存文件的存储桶存储在某个位置,以便以后查询模型时可以找到它。

票数 28
EN

Stack Overflow用户

发布于 2014-12-18 08:14:51

另一种解决方案如果您想在运行时指定bucket,则可以在对模型调用save()方法之前执行此操作。

下面是上面的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.db import models
from storages.backends.s3boto import S3BotoStorage

class MyModel(models.Model):
    file_1 = models.FileField() # Uses default storage
    file_2 = models.FileField()

在保存模型时的视图中,可以在该字段上指定存储。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
my_file_model = MyModel()
my_file_model.file_2.storage = S3BotoStorage(bucket="your-bucket-name")
my_file_model.save()

这样,file_2将保存在您指定的存储桶中,file_1将在其中使用您的默认存储桶。

票数 11
EN

Stack Overflow用户

发布于 2016-08-31 11:22:40

只需在带有PRIVATE_BUCKET_NAME='bucket name‘的settings.py中提及另一个bucket名称。

创建一个自定义类,它覆盖S3BotoStorage,并可以将其序列化为迁移文件。

为类s3_storage = S3MediaStorage()创建一个对象,并将其存储在MyModel的file1字段中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from storages.backends.s3boto import S3BotoStorage
from django.conf import settings

@deconstructible
class S3MediaStorage(S3BotoStorage):
    def __init__(self, *args, **kwargs):
        kwargs['bucket'] = getattr(settings, 'PRIVATE_BUCKET_NAME')
        super(S3MediaStorage, self).__init__(*args, **kwargs)

s3_storage = S3MediaStorage()

class MyModel(models.Model):
    file = models.FileField()
    file1 = models.FileField(storage=s3_storage)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10419248

复制
相关文章
警钟长鸣:S3存储桶数据泄露情况研究
存储桶(Bucket)是对象的载体,可理解为存放对象的“容器”,且该“容器”无容量上限、对象以扁平化结构存放在存储桶中,无文件夹和目录的概念,用户可选择将对象存放到单个或多个存储桶中[1]。由于存储桶具有扩展性高、存储速度快、访问权限可自由配置等优势,如今已纳入各大公有云厂商的关键基础设施中。
绿盟科技研究通讯
2021/12/26
4K0
警钟长鸣:S3存储桶数据泄露情况研究
【系统设计】S3 对象存储
在本文中,我们设计了一个类似于 Amazon Simple Storage Service (S3) 的对象存储服务。S3 是 Amazon Web Services (AWS) 提供的一项服务, 它通过基于 RESTful API 的接口提供对象存储。根据亚马逊的报告,到 2021 年,有超过 100 万亿个对象存储在 S3 中。
全球技术精选
2022/09/05
6.8K0
【系统设计】S3 对象存储
AWS S3 对象存储攻防
文章来源:火线Zone社区,链接:https://zone.huoxian.cn/d/907-aws-s3
火线安全
2022/03/01
3.5K0
AWS S3 对象存储攻防
【最佳实践】巡检项:对象存储(COS)存储桶加密
对于有些业务场景,用户十分看重数据的安全性。对于这种场景,我们推荐设置『存储桶加密』,通过对存储桶设置加密可对新上传至该存储桶的所有对象默认以指定的加密方式进行加密,这样即便底层数据丢失、被窃其他人也无法获取到数据内容,从而保证数据的安全性。
xinjwang王健
2022/04/07
1.9K0
【玩转腾讯云】云函数实时备份存储桶 A 中文件到存储桶 B
【注意】发现程序 bug ,假如从 A 存储桶备份至 B 存储桶,只能对上传到 A 中根目录的文件进行实时备份,对上传到 A 中一级及以上目录的文件,备份失败并报错。
我是技术小白
2020/04/15
3.2K0
【最佳实践】巡检项:对象存储(COS)存储桶 CORS 配置
某客户反馈配置了桶CORS,但是在访问COS时仍会出现跨域访问报错的情况,经排查是由于cors配置中没有配置Allow-Headers/Expose-Headers 头部,导致请求失败。
xinjwang王健
2022/04/07
1.2K0
【最佳实践】巡检项:对象存储(COS)存储桶版本控制
对于有些业务场景,用户希望保证数据的安全稳定性,防止出现一些因操作不当或应用程序故障而导致数据丢失。对于这种场景,我们推荐设置『存储桶版本控制』,通过对存储桶设置版本控制可以恢复丢失的数据。 从而保证客户数据的安全性。
xinjwang王健
2022/04/06
1.3K0
【客户案例】巡检项:对象存储(COS)存储桶公有读写
某客户使用COS存储用户的头像信息,近期出现用户头像被篡改为违规头像的情况,违规传播不法信息,导致大量用户投诉,且面临合规风险。
Smart Advisor
2022/03/15
8680
【最佳实践】巡检项:对象存储(COS)存储桶公有读写
某客户使用COS存储进行一些文件的存储,近期发现桶中出现了一些不是自己上传的文件、一些文件被删除了,还有一些流量的产生,经排查是因为桶开启了公有读写,任何人都可以对桶进行读写操作。
xinjwang王健
2022/04/21
1.8K0
如何使用亚马逊对象存储AWS S3 SDK访问腾讯云存储COS
COS 提供了 AWS S3 兼容的 API,因此当您的数据从 S3 迁移到 COS 之后,只需要进行简单的配置修改,即可让您的客户端应用轻松兼容 COS 服务。本文主要介绍不同开发平台的 S3 SDK 的适配步骤。在完成添加适配步骤后,您就可以使用 S3 SDK 的接口来访问 COS 上的文件了。
云存储
2020/05/26
4.3K0
S3 存储附件和图片无法上传
我们已经在后台的控制链表中对 Key 和 Id 进行了授权,应能够正常访问没有问题的。
HoneyMoose
2020/05/22
1.6K0
S3 存储附件和图片无法上传
我们已经在后台的控制链表中对 Key 和 Id 进行了授权,应能够正常访问没有问题的。
HoneyMoose
2020/07/25
1.7K0
S3 存储附件和图片无法上传
【最佳实践】巡检项:对象存储(COS)存储桶生命周期配置
检查腾讯云对象存储 COS 存储桶生命周期配置,如果出现以下两种情况,可能存在存储桶存储成本相关的优化配置。
吴硕卫
2022/04/18
1.2K0
SpringBoot开发符合S3协议的文件存储服务
公司最近的业务大量涉及安可项目,要求避免使用第三方组件,原有开发框架支持本地文件存储/Minio/各类云存储,现在要求文件独立存储且文件服务需要自研,经调研评估后决定基于SpringBoot开发文件存储服务,使用s3协议标准,这样可以直接使用aws-sdk接入无需再开发客户端,且安全安全性方面可以得到足够的保证(签名验证部分参考我的博文《Java实现AWS S3 V4 Authorization自定义验证》)
code2roc
2023/07/23
8150
SpringBoot开发符合S3协议的文件存储服务
公司最近的业务大量涉及安可项目,要求避免使用第三方组件,原有开发框架支持本地文件存储/Minio/各类云存储,现在要求文件独立存储且文件服务需要自研,经调研评估后决定基于SpringBoot开发文件存储服务,使用s3协议标准,这样可以直接使用aws-sdk接入无需再开发客户端,且安全安全性方面可以得到足够的保证(签名验证部分参考我的博文《Java实现AWS S3 V4 Authorization自定义验证》)
code2roc
2023/07/25
3620
SpringBoot开发符合S3协议的文件存储服务
php创建存储桶时提示access denied
$cosClient = new Qcloud\Cos\Client(array(
用户4095284
2018/12/04
1.3K0
【最佳实践】巡检项:对象存储(COS)存储桶防盗链(Referer)配置
检查腾讯云对象存储 COS 的防盗链配置情况。 当COS存储桶权限为公有读时,如果防盗链出现以下两种情况,可能会导致存储桶出现安全风险。
吴硕卫
2022/05/10
3.2K1
【客户案例】巡检项:对象存储(COS)存储桶防盗链(Referer)配置
某客户根据账单发现COS的费用突然增加,然后去分析发现请求费用和流量费用的增加,但是客户业务量没有明显的增。
Smart Advisor
2022/03/15
1.1K0
在Entity Framework中使用存储过程(二):具有继承关系实体的存储过程如何定义?
在《实现存储过程的自动映射》中,我通过基于T4的代码生成实现了CUD存储过程的自动映射。由于映射的都是基于数据表结构的标准的存储过程,所以它们适合概念模型和存储模型结构相同的场景。如果两种模型存在差异,在进行数据更新操作的时候就会出错。本篇文章主要介绍当概念模型中具有继承关系的两个实体映射到数据库关联的两个表,如何使用存储过程。 目录 一、创建具有继承关系的实体 二、基于继承关系实体的查询与更新 三、映射标准的CUD存储过程 四、修正存储过程 一、创建
蒋金楠
2018/02/07
1.5K0
在Entity Framework中使用存储过程(二):具有继承关系实体的存储过程如何定义?
使用ACL,轻松管理对存储桶和对象的访问!
访问控制与权限管理是腾讯云对象存储 COS 最实用的功能之一,经过开发者的总结沉淀,已积累了非常多的最佳实践。读完本篇,您将了解到如何通过ACL,对存储桶和对象进行访问权限设置。
云存储
2020/05/26
2.2K0
使用ACL,轻松管理对存储桶和对象的访问!

相似问题

具有多个区域的AWS S3存储桶

32

具有多个主题的Terraform s3存储桶通知

19

Django-存储更改现有对象上的s3桶

211

Laravel s3多个存储桶

30

具有凭据的S3存储桶错误

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文