def _copy(gcs_stub, filename, headers):
"""Copy file.
Args:
gcs_stub: an instance of gcs stub.
filename: dst filename of format /bucket/filename
headers: a dict of request headers. Must contain _XGoogCopySource header.
Returns:
An _FakeUrlFetchResult instance.
"""
source = _XGoogCopySource(headers).value
result = _handle_head(gcs_stub, source)
if result.status_code == httplib.NOT_FOUND:
return result
directive = headers.pop('x-goog-metadata-directive', 'COPY')
if directive == 'REPLACE':
gcs_stub.put_copy(source, filename, headers)
else:
gcs_stub.put_copy(source, filename, None)
return _FakeUrlFetchResult(httplib.OK, {}, '')
评论列表
文章目录