将预签名图像从Angular上传到s3 - 图像不会出现

时间:2016-06-14 18:58:27

标签: angularjs image laravel amazon-s3

我使用Angular将图像上传到s3存储桶,使用从我的Laravel服务器收到的预签名网址。

该文件似乎可以使用正确的内容类型上传。如果我在Angular上传PUT到s3之后点击s3文件,我会得到:

Object: dog-aromatherapy.jpg

  Bucket:   dderesources
  Name: dog-aromatherapy.jpg
  Link: This is a public link -> https://s3.amazonaws.com/dde.resources/dog-aromatherapy.jpg
  Size: 28660
  Last Modified:    Tue Jun 14 14:51:13 GMT-400 2016
  Owner:    myusername
  ETag: f478788943af2296223a0f45a9c50610
  Expiry Date:  None
  Expiration Rule:  N/A

元数据正确为image/jpeg

enter image description here

但实际文件大小为27.9kb,这意味着headers的{​​{1}}大小预计会超出约700亿左右...

enter image description here

当我点击要查看的图像时,它会显示一个白色的迷你:

enter image description here

亲自尝试:https://s3.amazonaws.com/dderesources/dog-aromatherapy.jpg

角色上传代码

28.6kb

为什么会这样?

1 个答案:

答案 0 :(得分:1)

删除期间“。”从你的桶名称,并使它像这样将解决问题

  

DDE-资源

作为具有句点“。”的存储桶名称。在您的代码中使用重新签名的URL时效果不佳。

在角度代码中使用以下语句

processData: false