问题描述
在弹性 beanstalk 上部署应用程序后,我在我的网站中从 S3 将图像显示为 jpeg 时出现问题??
我有一个 PHP/symfony 后端。我设置了一个路由,使用 PHP AWS SDK 的函数 getobject() 从私有 S3 存储桶 中检索 jpeg 文件。
在本地环境中,我设法将我的图像显示为存储桶 s3 中的 jpeg 文件,这里没问题。
但是在 aws ElasticBeanstalk 上部署我的应用程序之后,我得到一个对象返回并且我的问题开始了。我收到的对象是这样的:
????JFIFHH??C %#,#&')*)-0-(0%()(??C (((((((((((((((((((((((((((((((((((((((((((((((((((????"??????vL ???TM?? -9??pF??Zg?%K??f?r??A)??Q?_??V.?$?u/???l?3???%?X:?z??l?\??,?NqSv?,??,???
-?k???U?Q??K7.????%??*?exp??2@?s???t0;b?' Y??V?F*N2?z&?b??1)W????K S?c?-_??V?=5?L?W??T?sS?nx3??]+??sn?0?G9m??????+ny?+J?1?k?R?-m??????[??e|??S??-?Xo?*>?<???c??c7?-G????kJ82??i?z!??d???dVS;?]]?š?1* ?{??
等等...字符串显然要长得多
这是我的 Controller.PHP 来检索 jpeg 图像:
/**
* display images from s3 aws
* @Route("/test2/{nom}",name="display_image")
*/
public function getFileFromS3(AmazonS3Service $s3ClientService,$nom){
$s3 = $s3ClientService->getS3Client();
$sousRepertoire = $this->getParameter('s3SousRepImg');
$bucket = $this->getParameter('s3Bucket');
$repertoire = 'dev';
$key = trim($repertoire,"/")."/".trim($sousRepertoire,"/")."/".$nom;
$result = $s3->getobject([
'Bucket' => $bucket,'Key' => $key
]);
$body = $result['Body'];
$type = $result['ContentType'];
$response = new Response($body);
$response->headers->set('Content-Type',$type );
return $response; // retourne un objet response contenant les données de l'image
}
这是我调用 Controller.PHP 的结果的树枝,以在我的网站中显示 jpeg 图像:
<a href="{{ path('display_image',{'nom':entity.image }) }}">
<img src="{{ path('display_image',{'nom':entity.image }) }}" width="70" border="0" />
</a>
它在本地环境中运行良好,但在部署到 aws 时它不正常??
我花了很多时间试图解决这个问题,这似乎是一个很简单的问题,但我就是想不通。我将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)