From 232cd6b3be253da94f6c79b865b478a66520f8ea Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Fri, 27 May 2011 14:22:55 -0700 Subject: [PATCH] rgw: generate random upload id --- src/rgw/rgw_admin.cc | 47 +---------------------------- src/rgw/rgw_common.cc | 70 +++++++++++++++++++++++++++++++++++++++++++ src/rgw/rgw_common.h | 5 ++++ src/rgw/rgw_op.cc | 12 ++++++-- 4 files changed, 86 insertions(+), 48 deletions(-) diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index ba40d0421cdfe..381a7cb678394 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -187,51 +187,6 @@ static int get_cmd(const char *cmd, const char *prev_cmd, bool *need_more) return -EINVAL; } -int gen_rand_base64(char *dest, int size) /* size should be the required string size + 1 */ -{ - char buf[size]; - char tmp_dest[size + 4]; /* so that there's space for the extra '=' characters, and some */ - int ret; - - ret = get_random_bytes(buf, sizeof(buf)); - if (ret < 0) { - cerr << "cannot get random bytes: " << cpp_strerror(-ret) << std::endl; - return -1; - } - - ret = ceph_armor(tmp_dest, &tmp_dest[sizeof(tmp_dest)], - (const char *)buf, ((const char *)buf) + ((size - 1) * 3 + 4 - 1) / 4); - if (ret < 0) { - cerr << "ceph_armor failed" << std::endl; - return -1; - } - tmp_dest[ret] = '\0'; - memcpy(dest, tmp_dest, size); - dest[size] = '\0'; - - return 0; -} - -static const char alphanum_table[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - -int gen_rand_alphanumeric(char *dest, int size) /* size should be the required string size + 1 */ -{ - int ret = get_random_bytes(dest, size); - if (ret < 0) { - cerr << "cannot get random bytes: " << cpp_strerror(-ret) << std::endl; - return -1; - } - - int i; - for (i=0; iput_obj_meta(s->user.user_id, s->bucket_str, s->object_str, NULL, attrs, true); + string tmp_obj_name = s->object_str; + tmp_obj_name.append("."); + tmp_obj_name.append(upload_id); + + ret = rgwstore->put_obj_meta(s->user.user_id, s->bucket_str, tmp_obj_name, NULL, attrs, true); + } while (ret == -EEXIST); done: send_response(); } -- 2.39.5