在使用S3Client的GetObjectCommand命令获取zip文件时,需要忽略掉macOS中生成的.DS_Store文件。这可以通过在GetObjectCommand中设置过滤规则来实现。下面是一个在Node.js中使用AWS SDK v3的示例代码:
const { S3Client, GetObjectCommand } = require("@aws-sdk/client-s3");
const s3 = new S3Client({ region: "your-region" });
const getObjectParams = {
Bucket: "your-bucket",
Key: "your-zip-file.zip",
RequestPayer: "requester",
ExpressionType: "SQL",
Expression: "SELECT * FROM s3object s WHERE s.\"key\" NOT LIKE '%.DS_Store'",
};
try {
const { Body } = await s3.send(new GetObjectCommand(getObjectParams));
// 处理zip文件
} catch (err) {
console.error(err);
}
此代码使用了GetObjectCommand中的SQL表达式,以过滤掉文件名中包含.DS_Store的文件。