void GetAclTask::RunImp() { std::string uri_str = uri(); std::string buckname = CString2string(_buckname); buckname = MultiByteToUtf8(buckname); std::string objname = CString2string(_objname); objname = MultiByteToUtf8(objname); set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(objname) + "?acl")); }
////////////////////////////////////////////////////////////////////////// // delete object void DeleteObjectTask::RunImp() { set_http_method(HTTP_METHOD_DELETE); std::string uri_str = uri(); std::string buckname = CString2string(_buckname); buckname = MultiByteToUtf8(buckname); std::string objname = CString2string(_objname); objname = MultiByteToUtf8(objname); set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(objname))); }
////////////////////////////////////////////////////////////////////////// // create folder void CreateFolderTask::RunImp() { set_is_upload(true); set_http_method(HTTP_METHOD_PUT); std::string uri_str = uri(); std::string buckname = CString2string(_buckname); buckname = MultiByteToUtf8(buckname); std::string foldername = CString2string(_foldername); foldername = MultiByteToUtf8(foldername); set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(foldername))); }
void AclTask::RunImp() { set_http_method(HTTP_METHOD_PUT); _content_type = "text/json"; add_header("Content-Type", _content_type); std::string uri_str = uri(); std::string buckname = CString2string(_buckname); buckname = MultiByteToUtf8(buckname); std::string objname = CString2string(_objname); objname = MultiByteToUtf8(objname); set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(objname) + "?acl")); }
////////////////////////////////////////////////////////////////////////// // list bucket void ListBucketTask::RunImp() { std::string prefix = CString2string(_prefix); prefix = MultiByteToUtf8(prefix); add_params("prefix", URLEncode(prefix)); add_params("delimiter", URLEncode("/")); std::string uri_str = uri(); std::string buckname = CString2string(_buckname); buckname = MultiByteToUtf8(buckname); set_uri(uri_str.append(URLEncode(buckname) + "/")); }
////////////////////////////////////////////////////////////////////////// // download void DownloadTask::RunImp() { set_timeout(-1); set_is_download(true); std::string uri_str = uri(); std::string buckname = CString2string(_buckname); buckname = MultiByteToUtf8(buckname); std::string folderfile = CString2string(_filename); folderfile = MultiByteToUtf8(folderfile); set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(folderfile))); set_file_name(CString2string(_localpath + _T(DOWNLOAD_TEMP))); }
////////////////////////////////////////////////////////////////////////// // meta void MetaTask::RunImp() { std::string uri_str = uri(); std::string buckname = CString2string(_buckname); buckname = MultiByteToUtf8(buckname); set_uri(uri_str.append(URLEncode(buckname) + "/?meta")); }
////////////////////////////////////////////////////////////////////////// // upload void UploadTask::RunImp() { set_timeout(-1); set_is_upload(true); set_http_method(HTTP_METHOD_PUT); std::string uri_str = uri(); std::string buckname = CString2string(_buckname); buckname = MultiByteToUtf8(buckname); std::string folderfile = CString2string(_filename); folderfile = MultiByteToUtf8(folderfile); set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(folderfile))); set_file_name(CString2string(_localpath)); set_file_begin_pos(0); set_file_size(-1); }
////////////////////////////////////////////////////////////////////////// // copy void CopyTask::RunImp() { set_is_upload(true); set_http_method(HTTP_METHOD_PUT); std::string buckname = CString2string(_buckname); buckname = MultiByteToUtf8(buckname); std::string source = "/"; source.append(buckname + "/" + CString2string(_frompath)); source = MultiByteToUtf8(source); add_header("x-amz-copy-source", URLEncode(source)); add_header("x-amz-metadata-directive", "COPY"); _amz_data.insert(StringMap::value_type("x-amz-copy-source", URLEncode(source))); _amz_data.insert(StringMap::value_type("x-amz-metadata-directive", "COPY")); std::string uri_str = uri(); std::string objname = CString2string(_topath); objname = MultiByteToUtf8(objname); set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(objname))); }
std::string MultiByteToUtf8( const std::string& sSrc ) { return MultiByteToUtf8( sSrc.c_str(), (_U32)( sSrc.size() ) ); }