问题描述
任何人在S3上都遇到这个问题,即您从rails后端存储的文件不显示为您在attach方法中指定的文件名吗?例如:
book.epub.attach(io: File.open("<filepath>/tangrenjie.epub"),filename: "rangrenjie.epub",content_type: 'application/epub+zip')
这会导致文件在S3上的名称为“ qsqyksxtpq66uk6vvyn6mtam17cp”:
我在S3控制台上手动上传了一个文件,实际上一切正常。它的名称没有更改,这使我认为这是从Rails到S3的问题。
我尝试在S3上添加到CORS标签;但我不确定自那以后该怎么办
这不会有问题,但是我使用的依赖项需要一个公共网址-我在S3上手动上传的文件的网址可以正常工作,但是我的rails应用程序中的所有内容最终都会得到一个巨型密钥作为它的文件名,没有任何文件扩展名(请参见屏幕截图),当我在应用程序中将其用作src url时,它们将不起作用。
我一直在从我使用的依赖项的作者那里获得帮助,但是他不知道,因为他有一段时间没有使用S3了。
这是我在S3中拥有的当前CORS规则:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
我将Rails 6.0.3用作带有ActiveStorage的api和AWS S3服务,使用aws-sdk-s3 gem,使用root用户凭据在Rails后端应用程序上存储与对象关联的文件。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)