开发者社区> 问答> 正文

使用OSS_CPP_SDK上传本地文件一直报错,上传失败

bool UpLoad(std::string BucketName, std::string ObjectName, std::string LocalFilename)
{
	ClientConfiguration conf;
	OssClient client(Endpoint, AccessKeyId, AccessKeySecret, conf);

	/* 判断存储空间是否存在 */
	if (client.DoesBucketExist(BucketName)) {
		std::cout << " The Bucket exists" << std::endl;
	}
	else {
		std::cout << "The Bucket does not exist" << std::endl;
		return false;
	}

	std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(LocalFilename, std::ios::in/* | std::ios::binary*/);
	PutObjectRequest request(BucketName, ObjectName, content);

	/* 设置进度 */
	TransferProgress progressCallback = { ProgressCallback, nullptr };
	request.setTransferProgress(progressCallback);

	/* 上传文件 */
	auto outcome = client.PutObject(request);

	if (!outcome.isSuccess()) {
		/* 异常处理 */
		std::cout << "PutObject fail" <<
			",code:" << outcome.error().Code() <<
			",message:" << outcome.error().Message() <<
			",requestId:" << outcome.error().RequestId() << std::endl;
		return false;
	}
	return true;

这是我的代码 调用是这样的,mytest是我的bucket,test1是mytest下的一个目录

UpLoad("mytest", "test1/test.txt", "D:\\test.txt");

报错信息是:

PutObject fail,code:ClientError:200056,message:Failure when receiving data from the peer.Recv failure: Connection was reset,requestId:

展开
收起
游客4audbi27h7zci 2021-02-03 18:24:36 1343 0
1 条回答
写回答
取消 提交回答
  • 后续办法:是不是系统时间除了date -R看到的时区,还有一个硬件的概念,就着手将硬件的时间、时区一并修改。 针对中国时区,修改操作如下 1. 修改文件 /etc/sysconfig/clock内容:

    ZONE=Asia/Shanghai UTC=false ARC=false

    rm -rf /etc/localtime ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    2021-02-11 15:04:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载