是否可以检索存储在Amazon S3上的图像的尺寸?
如果答案是否定的,除了将图像下载到我的服务器之外还有其他方法吗?
我正在使用AWS SDK for PHP的第2版。
我一直在查看以下代码返回的内容,但似乎没有给出尺寸。
$result = $s3->getObject(array(
'Bucket' => 'BUCKET_NAME',
'Key' => 'KEY_NAME'
));
var_dump($result);
答案 0 :(得分:0)
由于缺乏回应,我认为这是不可能的......我不想用JavaScript做这件事,但这就是我做的。
<img src="image.jpg" id="image" />
<script>
// This runs after the image has loaded
$('#image').load(function() {
// Use the below code to get the height and width
// document.getElementById('image').width
// document.getElementById('image').height
});
</script>
答案 1 :(得分:0)
我不是100%熟悉SDK2。使用1.5你可以做到这一点
getimagesize($s3->get_object_url($bucket,$filename));
我认为只要您可以公开访问该图片(或者您必须找到授权网址的方式),这仍然是可能的。
显然,必须启用你的php才能打开远程文件。
答案 2 :(得分:0)
我同意数据库缓存。我通过一个检查mysql匹配的类来运行每个图像文件名。如果找到一个,它会返回宽度,高度和预先格式化的sizetag。如果未找到图像和大小,则使用getimagesize()返回相同的信息,该信息将在下次存储。我还建立了一个调整大小的方法,如果我想作弊,并在运行中按比例调整sizetag(但不是文件)的大小。
我不知道在下载时是否存储信息的速度比getimagesize()快。 S3非常快。