getObject 模拟返回 0 字节文件
getObject mock is returning 0 bytes file
getObject mock 正在返回 0 字节文件。我的模拟要求是获取完整文件。
我的代码如下:
AWSmock.mock("S3", "getObject", (params: any, callback: any) => {
try {
const filePath = path.join(__dirname, "../../seed/dummy_model/SampleNames.zip");
logger.debug("In mock S3.getObject()");
const data = readFileSync(filePath);
const stat = statSync(filePath);
logger.verbose(JSON.stringify(stat));
const props = {
Body: data,
ContentLength: data.length,
ETag: '"' + createHash("md5").update(data).digest("hex") + '"',
Key: params.Key,
LastModified: stat.mtime,
};
logger.verbose(JSON.stringify(props));
callback(null, props);
} catch (err) {
logger.error(err);
// process.exit(1);
callback(new Error("Unable to stream file."));
}
});
这是图书馆的问题还是我做错了?
请帮我解决一下这个。提前致谢。
是的,你用错了。试试下面的方法:
AWSmock.mock("S3", "getObject", new Buffer(data));
getObject mock 正在返回 0 字节文件。我的模拟要求是获取完整文件。
我的代码如下:
AWSmock.mock("S3", "getObject", (params: any, callback: any) => {
try {
const filePath = path.join(__dirname, "../../seed/dummy_model/SampleNames.zip");
logger.debug("In mock S3.getObject()");
const data = readFileSync(filePath);
const stat = statSync(filePath);
logger.verbose(JSON.stringify(stat));
const props = {
Body: data,
ContentLength: data.length,
ETag: '"' + createHash("md5").update(data).digest("hex") + '"',
Key: params.Key,
LastModified: stat.mtime,
};
logger.verbose(JSON.stringify(props));
callback(null, props);
} catch (err) {
logger.error(err);
// process.exit(1);
callback(new Error("Unable to stream file."));
}
});
这是图书馆的问题还是我做错了?
请帮我解决一下这个。提前致谢。
是的,你用错了。试试下面的方法:
AWSmock.mock("S3", "getObject", new Buffer(data));