我在使用AWS s3 PHP SDK的单元测试中完成了以下操作:
$url = $s3->get_object_url($bucket, $path, '10 seconds');
echo $url . "\n";
echo time() . "\n";
sleep(20);
$this->assertEquals(403, $this->getUrlHttpCode($url));
断言失败,因为即使在20秒后仍然可以访问URL。亚马逊返回的“Expires”URL参数是正确的,但请求仍然成功。
这是S3中的错误吗?有人经历过这个吗?
答案 0 :(得分:0)
亚马逊支持告诉我,这是由我的服务器时间和S3服务器时间之间的差异引起的。
这实际上现在确实有意义,因为我的CI服务器已经运行了几个月,并且很可能存在时间差。我添加了一个cronjob来运行ntpdate,我的测试现在似乎正在运行。