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

使用R的aws.s3包上传PDF至S3桶后文件损坏的解决咨询

解决S3上传PDF损坏的问题
  • 以二进制模式读取文件再上传
    PDF是二进制文件,直接传入文件路径时,put_object可能会以文本编码读取内容,导致文件损坏。正确做法是用readBin以raw格式读取文件内容后再上传:
# 读取二进制PDF内容
pdf_raw <- readBin("myfiles/myfile.pdf", what = "raw", n = file.size("myfiles/myfile.pdf"))

# 执行上传操作
put_object(
  file = pdf_raw,
  object = "myfile.pdf",
  bucket = "myS3bucket"
)
  • 显式设置Content-Type请求头
    为确保S3正确识别文件类型,避免阅读器解析错误,上传时建议指定Content-Type为application/pdf:
put_object(
  file = pdf_raw,
  object = "myfile.pdf",
  bucket = "myS3bucket",
  headers = list("Content-Type" = "application/pdf")
)
  • 验证文件完整性
    上传完成后,对比本地文件和S3中文件的大小,确认数据没有丢失:
# 获取本地文件大小
local_size <- file.size("myfiles/myfile.pdf")
# 获取S3中文件大小
s3_size <- head_object(object = "myfile.pdf", bucket = "myS3bucket")$ContentLength

# 打印对比结果
cat("本地文件大小:", local_size, "字节\n")
cat("S3文件大小:", s3_size, "字节\n")

如果两者大小不一致,检查网络连接后重新上传。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:15:43