在datawork里面是可以浏览oss里面的数据的,但是执行的时候就报错误。
节点:OSS对象检查
[31m2024-04-17 16:39:10.918[0;39m [32m[ main][0;39m [31mWARN [0;39m [1;32mcom.aliyun.oss [0;39m - [Server]Unable to execute HTTP request: The OSS Access Key Id you provided does not exist in our records. The Security Token may be lost to specify that it is a STS Access Id.
麻烦跟进一下
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的错误信息和知识库中的相关资料,以下是问题的详细分析与解决方案:
在DataWorks中浏览OSS数据时正常,但在执行任务时出现以下错误:
The OSS Access Key Id you provided does not exist in our records. The Security Token may be lost to specify that it is a STS Access Id.
该错误表明在使用STS临时访问凭证访问OSS资源时,提供的AccessKeyId无效或未正确指定为STS类型的AccessKeyId。
根据知识库中的文档,此问题可能由以下原因导致: 1. AccessKeyID无效或不存在:使用的AccessKeyID可能已被禁用或未正确创建。 2. 临时访问凭证已过期:STS临时访问凭证具有时效性,过期后将自动失效。 3. 未正确指定STS类型:在使用STS临时访问凭证时,未明确标识其为STS类型的AccessKeyId。
请按照以下步骤逐一排查并解决问题:
AssumeRole
接口向App服务器申请新的STS临时访问凭证。roleSessionName
参数,并遵循命名规范。在使用STS临时访问凭证时,确保在请求中明确标识其为STS类型的AccessKeyId。
SecurityToken
参数。示例代码(以Java SDK为例):
// 创建OSSClient实例
String endpoint = "oss-cn-hangzhou.aliyuncs.com";
String accessKeyId = "<your-sts-access-key-id>";
String accessKeySecret = "<your-sts-access-key-secret>";
String securityToken = "<your-security-token>";
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret, securityToken);
// 执行OSS操作
boolean exists = ossClient.doesObjectExist("<your-bucket-name>", "<your-object-key>");
System.out.println("Object exists: " + exists);
// 关闭OSSClient
ossClient.shutdown();
oss-cn-hangzhou.aliyuncs.com
。通过以上步骤,您可以有效解决“The OSS Access Key Id you provided does not exist in our records”错误。如果仍有疑问,请随时反馈!
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。