2014-09-22 81 views
3

我有以下URL,它存在:检查的S3网址存在

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 

有没有一种方法来检查URL,看它是否有效,无需下载文件(可能是1GB文件)?请注意,我不想使用boto来查看密钥是否存在,我想使用HTTP请求。

回答

6

试试这个:

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 
+0

'HEAD'的要求是正确的方法,它避免了下载整个文件。 – kindall 2014-09-22 21:12:31