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

Swift端生成PDF上传AWS S3后出现空白文件问题求助

问题排查步骤

1. 优先校验iOS端输出的PDF二进制是否正确

你当前的generatePDF方法仅返回PDFDocument实例,上传时需要调用实例的dataRepresentation()方法获取标准PDF二进制数据,不要直接用UIImage的原始图像数据代替。
校验方式:

  • 生成PDFDocument后调用pdfDocument.dataRepresentation()拿到Data,直接写入本地沙盒,导出到系统文件App打开验证是否正常,确认本地输出的二进制本身没有问题。

2. 检查AWS API Gateway二进制配置

AWS API Gateway默认会将非文本类型的请求体转码为Base64字符串再传给Lambda,如果你没有配置二进制媒体类型,Lambda拿到的PDF内容实际是Base64编码的文本,直接存入S3就会出现文件大小正常但打开空白的问题。
修复方式:

  • 进入对应API Gateway的控制台,找到你当前使用的接口,在「二进制媒体类型」配置项中添加application/pdf或者通配符*/*,配置完成后重新部署API生效。

3. 校验Lambda侧的文件解析逻辑

  • 先打印document.content的前100个字符,标准PDF文件的开头固定为%PDF-1.格式,如果你输出的内容是Base64字符串(没有%PDF开头),可以先临时通过代码转码再上传:
Body: Buffer.from(document.content, 'base64')
  • 确认documentData.files[0]的mimeType、filename属性和你上传时设置的参数一致,避免取错文件对象。

4. 可选:Alamofire参数校验

上传时multipartFormData.append的withName参数是multipart表单的字段名,如果你后续调整解析逻辑要指定字段名,需保证前后端字段名一致,当前你取第一个文件的写法不受影响。

内容的提问来源于stack exchange,提问作者Ricardo Ruiz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:45:04