使用ControllerAdviceBean插件(使用Burzum/FileStorage)的CakePHP 3.4应用程序来管理到AWS S3的上传。不幸的是,我遇到了MS Office文件(docx,xlsx等)被检测为ZIP文件的问题。
我将代码更改为首先使用finfo,如果它检测到zip,请查看扩展名以查看它是否是Office文件。现在,我可以通过执行patchEntity将此正确的模仿类型传递给file_storage表。到目前为止一切顺利。
但是,FileStorage插件调用KnpLabs / Gaufrette实际将文件发送到S3,但似乎并没有沿mimetype / contenttype发送。因此,Gaufrette然后在KnpLabs/Gaufrette中进行了自己的小的finfo技巧,将元数据字段'Content-Type:application / zip'写入S3上的项目,导致Office文件被下载为zip文件...
在AwsS3适配器的选项中是否可以设置正确的内容类型?
谢谢!
答案 0 :(得分:0)
在这里提到了答案:DOCS
可以使用以下代码访问适配器和设置,例如“内容类型”:
# Dockerfile
FROM ruby:2.5
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN groupadd -r -g 1000 appuser
RUN useradd -r -m -u 1000 -g appuser appuser
USER appuser
RUN mkdir /home/appuser/myapp
WORKDIR /home/appuser/myapp
COPY Gemfile Gemfile.lock ./
RUN bundle install
COPY . ./
感谢burzum指出这一点!