Django 对象存储未反映到我的对象存储中

问题描述 投票:0回答:1

我正在尝试将对象存储集成到我的 Django 项目中,我当前的设置包括 Django、DRF 和 PostgreSQL。具体来说,我正在尝试处理从 API 端点上传的图像并将其存储在对象存储中。

class Announcement(models.Model):
image = models.ImageField(upload_to='media/')

现在,当我尝试访问该操作的 API 端点时。该图像存储在我的 base_dir/media 中的某个位置。

这是我的 boto3\存储设置

AWS_ACCESS_KEY_ID = os.environ.get('DO_SPACES_KEY')
AWS_SECRET_ACCESS_KEY = os.environ.get('DO_SPACES_SECRET')
AWS_STORAGE_BUCKET_NAME = os.environ.get('DO_SPACES_BUCKET')
AWS_S3_ENDPOINT_URL = os.environ.get('DO_SPACES_ENDPOINT')
AWS_S3_OBJECT_PARAMETERS = {
    'CacheControl': 'max-age=86400',
}
AWS_LOCATION = 'media'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]
STATIC_URL = 'https://%s/%s/' % (AWS_S3_ENDPOINT_URL, 'static')
MEDIA_URL = 'https://%s/%s/' % (AWS_S3_ENDPOINT_URL, AWS_LOCATION)
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'


我尝试重新配置设置但没有成功。我还检查了数据的凭据、媒体文件和运行时值。

我还检查了 postgresql 数据库,其中包含我的对象存储中似乎是图像的 URL。

django django-rest-framework digital-ocean
1个回答
0
投票

你真正需要做的是改变你实施你的方法的方式 通过将其转换为二进制来进行模型。

这样它:

class Announcements(models.Model): 
image = model.BinaryField()

这样你就可以直接存储了

© www.soinside.com 2019 - 2024. All rights reserved.