使用Apps Script上传文件至S3被转JSON,如何保留CSV格式?
解决Apps Script上传S3文件被转为JSON的问题
问题出在两个核心环节:文件内容的获取方式和上传时的MIME类型指定,结合你使用的S3工具库,可按以下方案修复:
确保获取Google文件的原始内容
从Google Workspace取文件时,要拿到原始文本/二进制数据,而非自动序列化的JSON对象。示例代码:// 通过文件ID获取目标文件 const targetFile = DriveApp.getFileById('你的文件ID'); // 获取文件的原始文本内容(适用于txt/csv格式) const content = targetFile.getBlob().getDataAsString();上传时显式指定MIME类型
你使用的S3工具库的putObject方法支持传入额外请求头参数,通过Content-Type指定文件的MIME类型,避免默认转为JSON。修改后的上传代码:S3.init(); // 第五个参数为配置对象,指定Content-Type S3.putObject("bucket123", 'Tacofile.txt', content, 'ca-central-1', { 'Content-Type': 'text/csv' // 若为纯文本文件则改用'text/plain' });
原理:该库默认会对非二进制内容做JSON序列化处理,通过传入原始文本内容+显式指定Content-Type,就能强制S3以指定格式存储文件,不会被转为JSON结构。
内容的提问来源于stack exchange,提问作者Carlo B.
相关产品推荐
相关产品推荐

