@@ -2197,6 +2197,73 @@ TEST_F(ObjectOpTest, MultiPutObjectTest_OneStep) {
21972197 }
21982198}
21992199
2200+ TEST_F (ObjectOpTest, PutObjectResumableSingleThreadSyncTest) {
2201+ {
2202+ std::string filename = " single_upload_object_one_step" ;
2203+ std::string object_name = filename;
2204+ // 1. 生成个临时文件, 用于分块上传
2205+ {
2206+ std::ofstream fs;
2207+ fs.open (filename.c_str (), std::ios::out | std::ios::binary);
2208+ std::string str (10 * 1000 * 1000 , ' b' );
2209+ for (int idx = 0 ; idx < 10 ; ++idx) {
2210+ fs << str;
2211+ }
2212+ fs.close ();
2213+ }
2214+
2215+ // 2. 上传
2216+ qcloud_cos::PutObjectResumableSingleSyncReq req (m_bucket_name, object_name, filename);
2217+ req.SetHttps ();
2218+ req.AddHeader (" x-cos-meta-ssss1" ," 1xxxxxxx" );
2219+ req.AddHeader (" x-cos-meta-ssss2" ," 2xxxxxxx" );
2220+ req.AddHeader (" x-cos-meta-ssss3" ," 3xxxxxxx" );
2221+ req.AddHeader (" x-cos-meta-ssss4" ," 4xxxxxxx" );
2222+ uint64_t traffic_limit = 8192 * 1024 *100 ;// 100MB
2223+ req.SetTrafficLimit (traffic_limit);
2224+ req.SetCheckCRC64 (true );
2225+ qcloud_cos::PutObjectResumableSingleSyncResp resp;
2226+ std::chrono::time_point<std::chrono::steady_clock> start_ts, end_ts;
2227+ start_ts = std::chrono::steady_clock::now ();
2228+ qcloud_cos::CosResult result = m_client->PutObjectResumableSingleThreadSync (req, &resp);
2229+ EXPECT_TRUE (result.IsSucc ());
2230+
2231+ // 3. 删除临时文件
2232+ if (-1 == remove (filename.c_str ())) {
2233+ std::cout << " Remove temp file=" << filename << " fail." << std::endl;
2234+ }
2235+ }
2236+
2237+ {
2238+ std::string filename = " multi_upload_object_enc_one_step" ;
2239+ std::string object_name = filename;
2240+ // 1. 生成个临时文件, 用于分块上传
2241+ {
2242+ std::ofstream fs;
2243+ fs.open (filename.c_str (), std::ios::out | std::ios::binary);
2244+ std::string str (10 * 1000 * 1000 , ' b' );
2245+ for (int idx = 0 ; idx < 10 ; ++idx) {
2246+ fs << str;
2247+ }
2248+ fs.close ();
2249+ }
2250+
2251+ // 2. 上传
2252+ MultiPutObjectReq req (m_bucket_name, object_name, filename);
2253+ req.SetXCosServerSideEncryption (" AES256" );
2254+ MultiPutObjectResp resp;
2255+
2256+ CosResult result = m_client->MultiPutObject (req, &resp);
2257+ ASSERT_TRUE (result.IsSucc ());
2258+ EXPECT_EQ (" AES256" , resp.GetXCosServerSideEncryption ());
2259+
2260+ // 3. 删除临时文件
2261+ if (-1 == remove (filename.c_str ())) {
2262+ std::cout << " Remove temp file=" << filename << " fail." << std::endl;
2263+ }
2264+ }
2265+ }
2266+
22002267TEST_F (ObjectOpTest, UploadPartCopyDataTest) {
22012268 // 上传一个对象
22022269 {
0 commit comments