You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于PIX4D API的Nest.js后端S3图片上传403授权错误求助

基于PIX4D API的S3图片上传403授权错误问题

我正在开发一个基于PIX4D API的项目,后端采用Nest.js,前端为React TypeScript。目前已完成令牌创建、项目创建、获取项目AWS凭证等操作,但使用获取到的凭证向S3存储桶上传图片时,始终出现axios 403授权错误,暂时找不到解决方向。

以下是Nest.js中用于S3图片上传的代码:

async uploadPhotoS3(fileData: Buffer): Promise<any> { 
  try{
    const {id} = await this.projectService.createProject({ name: 'firstproject' });
    const awsConfig = await this.awsService.getCredentials(id);
   
    console.log(awsConfig);
    
    const s3 = {
      accessKeyId: awsConfig.access_key,
      secretKey: awsConfig.secret_key,
      sessionToken: awsConfig.session_token,
      bucket: awsConfig.bucket,
      key: awsConfig.key,
      region: awsConfig.region
    }
    
    // Prepare the request options
    const requestOptions = {
      host: `https://s3.amazonaws.com/${s3.bucket}`,
      url: `https://s3.amazonaws.com/${s3.bucket}/${s3.key}`,
      path: `/${s3.key}`,
      method: 'PUT',
      headers: {
        'Content-Type': 'multipart/form-data',
        // 'Authorization': `AWS4-HMAC-SHA256 Credential=${accKey}/20230606/${region}/s3/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-content-sha256;x-amz-date, Signature=${awsConfig.Signature}`
      },
      service: 's3',
      region: s3.region, 
      data: fileData,
      body: fileData,
    };

    // Sign the request using aws4
    const signedRequest = AWS4.sign(requestOptions, {
      accessKeyId: s3.accessKeyId ,
      secretAccessKey: s3.secretKey,
      sessionToken: s3.sessionToken,
    });

    console.log(signedRequest);
    
    delete signedRequest.headers['Host'];

    const response = await axios({
      ...signedRequest,
      url:`https://s3.${s3.region}.amazonaws.com/${s3.bucket}/${s3.key}`,   
      data: requestOptions.body
    });
 
    console.log(response);
    return response;
  } catch(error){
    console.log(error);
  }
}

有没有熟悉PIX4D API与S3存储桶的开发者能帮忙排查这个403错误?参考文档为PIX4D Cloud API文档。

内容的提问来源于stack exchange,提问作者Christophoros Feggaris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:12:37