【发布时间】:2021-11-04 17:13:16
【问题描述】:
我有一个基于 Django REST 的 API 在 Azure Web 服务上正常工作,但在尝试将文件上传到容器的装载卷时失败。我正在通过 POST 请求执行上传过程,并且在我的本地环境中它可以正常工作。
我用来上传文件到数据库的模型是这样的:
from app.controllers.users.models import User
class QueueJob(models.Model):
class Tasks(models.TextChoices):
COLLABORATORS_UPDATE = 'CB_UPDATE'
WITHDRAWALS_UPDATE = 'WD_UPDATE'
EXPATS_UPDATE = 'EP_UPDATE'
class Statuses(models.TextChoices):
PENDING = 'PENDING'
PROCESSING = 'PROCESSING'
DONE = 'DONE'
FAILED = 'FAILED'
user = models.ForeignKey(User, on_delete=models.CASCADE)
task = models.CharField(max_length=20, choices=Tasks.choices, blank=False, null=False)
file = models.FileField(upload_to=r'reports/', null=False)
extra_data = models.CharField(max_length=1024, blank=False, null=True)
execution_comment = models.CharField(max_length=255, blank=False, null=True)
status = models.CharField(max_length=20, choices=Statuses.choices, null=False, default=Statuses.PENDING)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
verbose_name = 'Queue Job'
verbose_name_plural = 'Queue Jobs'
ordering = ['created_at']
class QueueJobSerializer(ModelSerializer):
class Meta:
model = QueueJob
exclude = ['id', ]
奇怪的是文件实际上加载了,我可以通过卷访问它 as you can see here 但在创建数据库记录时运行 save() 方法仍然失败,序列化程序返回下一个错误:
[Errno 1] 不允许操作:'/app/storage/public/reports/report_UhrYWD6.xlsb'
我已经尝试为 azure 安装 django-storages,但我们没有使用存储帐户,只是使用卷挂载,并且无论如何也失败了。
希望有人能帮帮我
【问题讨论】:
标签: python django azure azure-storage persistent-volumes