我正在创建一个png并立即上传到S3,我想记录该文件的大小,而不必单独调用S3上的同一文件来计算磁盘上的大小。
这可能吗?
$tile = imagecreatetruecolor($tileImageSize, $tileImageSize);
imagecopy($tile, $resizedMainImage, 0, 0, $currentCoordsX, $currentCoordsY, $tileSize, $tileSize);
$writeStream = fopen("s3://bucket/file.png", 'w');
imagepng($tile, $writeStream, 9); // need filesize of this action
我已经尝试将imagepng
包裹在ob_start(); ob_get_length(); etc
中而没有任何快乐。
答案 0 :(得分:1)
问题是你需要将图像保存到某个地方以获得大小。为避免写入文件系统,可以使用php的内存存储。我的意思是这样的:
imagepng($tile, 'php://memory/image.png');
$file_size = filesize('php://memory/image.png');
您可以在将图像上传到服务器之前执行此操作,以获取日志信息。