有没有办法为连接创建Key
而无需使用boto进行验证? docs表示有一个validate
参数,但它不存在于2.23源代码中(据说与文档版本相同)。
我需要一种解决方法来避免在密钥上进行查找。
答案 0 :(得分:1)
get_key()
中的boto.s3.bucket.Bucket
方法对对象执行HEAD请求以验证它是否存在。如果您确定该对象存在且不想要HEAD请求的开销,只需直接创建Key对象:
import boto.s3
from boto.s3.key import Key
conn = boto.s3.connect_to_region('us-east-1')
bucket = conn.get_bucket('mybucket', validate=False)
key = Key(bucket, 'mykeyname')
这可以避免HEAD请求,并且仍然允许您对Key对象执行正常操作。但请注意,HEAD请求会检索有关Key的某些元数据,例如其内容类型,大小,ETag等。直接构造的Key对象不会提供该信息。