检查是否存在s3网址

时间:2014-09-22 21:05:20

标签: python http boto

我有以下网址,存在:

https://s3-us-west-1.amazonaws.com/premiere-avails/458ca3ce-c51e-4f69-8950-7af3e44f0a3d__chapter025.jpg

但是这个没有:

https://s3-us-west-1.amazonaws.com/premiere-avails/459ca3ce-c51e-4f69-8950-7af3e44f0a3d__chapter025.jpg

有没有办法检查网址是否有效,而不下载文件(可能是1GB文件)?请注意,我不想使用boto查看密钥是否存在,我想使用HTTP请求。

2 个答案:

答案 0 :(得分:7)

试试这个:

import httplib
from urlparse import urlparse

def url_exists(url):
    _, host, path, _, _, _ = urlparse(url)
    conn = httplib.HTTPConnection(host)
    conn.request('HEAD', path)
    return conn.getresponse().status < 400

答案 1 :(得分:1)

你可以使用卷曲。 --head选项将发送HEAD请求而不是GET,因此即使它确实存在也不会返回正文。

curl --head https://s3-us-west-1.amazonaws.com/premiere-avails/458ca3ce-c51e-4f69-8950-7af3e44f0a3d__chapter025.jpg