Skip to content

PutObject经常报错:PutObject fail,code:ValidateError,message:Request body is in fail state. Logical error on i/o operation.,requestId: #185

@mengqinyuan

Description

@mengqinyuan

我在使用OSS C++ SDK时,程序运行成功了,但是每一次控制台都有报错提示:
PutObject fail,code:ValidateError,message:Request body is in fail state. Logical error on i/o operation.,requestId:

代码如下:
···C++

#include <alibabacloud/oss/OssClient.h>
#include <alibabacloud/oss/Types.h>
#include <alibabacloud/oss/model/PutObjectRequest.h>
#include "OssClientImpl.h"
#include
using namespace AlibabaCloud::OSS;

int main(void)
{
/* 初始化OSS账号信息。*/
std::string Endpoint = "oss-cn-nanjing.aliyuncs.com";
std::string BucketName = "meng-qin-yuan";
std::string ObjectName = "test/1.txt";
std::string LocalFilePath = "C:/Users/Administrator/Desktop/1.txt";
std::string AccessKeyId = "###";
std::string AccessKeySecret = "###";

/* 初始化网络等资源 */
InitializeSdk();

ClientConfiguration conf;
OssClient client(Endpoint, AccessKeyId, AccessKeySecret, conf);
/*这里表示的是你本地文件夹要传的文件名称,并且把 \ 改成 /  */
std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>(LocalFilePath, std::ios::in | std::ios::binary);
PutObjectRequest request(BucketName, ObjectName, content);

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;
	ShutdownSdk();
	return -1;
}

/* 释放网络等资源 */
ShutdownSdk();
return 0;

}

···

这里的·LocalFilePath有这个文件,AccessKeyID和AccessKeySecret也是可以访问的。
我使用的是从github clone的SDK, cmake编译,在Visual Studio 2022中配置。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions