rgw: reject encrypted object COPY before supported

Current implementation does not follow S3 spec and even
may result in data corruption silently when copying
multipart objects accorss pools. So reject COPY operations
on encrypted objects before it is fully functional.

Fixes: http://tracker.ceph.com/issues/23232
Signed-off-by: Jeegn Chen <jeegnchen@gmail.com>
This commit is contained in:
Jeegn Chen 2018-03-06 13:20:07 +08:00
parent c454b1d1d6
commit a1513efe21

View File

@ -8097,6 +8097,15 @@ int RGWRados::copy_obj(RGWObjectCtx& obj_ctx,
if (ret < 0) {
return ret;
}
if (src_attrs.count(RGW_ATTR_CRYPT_MODE)) {
// Current implementation does not follow S3 spec and even
// may result in data corruption silently when copying
// multipart objects acorss pools. So reject COPY operations
//on encrypted objects before it is fully functional.
ldout(cct, 0) << "ERROR: copy op for encrypted object " << src_obj
<< " has not been implemented." << dendl;
return -ERR_NOT_IMPLEMENTED;
}
src_attrs[RGW_ATTR_ACL] = attrs[RGW_ATTR_ACL];
src_attrs.erase(RGW_ATTR_DELETE_AT);