从 s3 损坏的图像
Image corrupted from s3
这是我的上传代码(节点)
// generate a uuid string
const uuid = uuidv4(); // type string
// upload to wasabi
fs.readFile(file.tempFilePath, "utf8", (err, data) => {
if (err) {
throw (err);
}
// upload the object
s3.upload(
{
Body: data,
Key: uuid + "-" + file.name,
Bucket: "files",
Metadata: { 'ext': ".png" },
// ContentLength: file.size
}, (err, data) => {
if (err) {
console.log(err);
throw (err);
}
console.log(data);
});
});
该对象确实到达了存储桶。它有超过 0 个字节。它大约是源图像的一半,但我只是假设有人正在压缩它(芥末之类的)。
我正在使用 express-fileupload 我的配置是:
app.use(fileUpload({
createParentPath: true,
limits: {
fileSize: 2 * 1024 * 1024 * 1024 //2MB max file(s) size
},
useTempFiles: true,
tempFileDir: "/tmp/",
}));
最终我直接从 wasabi 网络客户端下载了这个,并尝试在图像查看器中打开它,他们都说文件中有错误或者他们不支持文件类型(即 . png,所以它是受支持的)。
图片只有 ~150kb 。
基本上文件到达那里但它已损坏。
utf8
是 文本编码。但是 .png
不是文本。只需删除编码选项,它应该可以工作。
这是我的上传代码(节点)
// generate a uuid string
const uuid = uuidv4(); // type string
// upload to wasabi
fs.readFile(file.tempFilePath, "utf8", (err, data) => {
if (err) {
throw (err);
}
// upload the object
s3.upload(
{
Body: data,
Key: uuid + "-" + file.name,
Bucket: "files",
Metadata: { 'ext': ".png" },
// ContentLength: file.size
}, (err, data) => {
if (err) {
console.log(err);
throw (err);
}
console.log(data);
});
});
该对象确实到达了存储桶。它有超过 0 个字节。它大约是源图像的一半,但我只是假设有人正在压缩它(芥末之类的)。 我正在使用 express-fileupload 我的配置是:
app.use(fileUpload({
createParentPath: true,
limits: {
fileSize: 2 * 1024 * 1024 * 1024 //2MB max file(s) size
},
useTempFiles: true,
tempFileDir: "/tmp/",
}));
最终我直接从 wasabi 网络客户端下载了这个,并尝试在图像查看器中打开它,他们都说文件中有错误或者他们不支持文件类型(即 . png,所以它是受支持的)。 图片只有 ~150kb 。 基本上文件到达那里但它已损坏。
utf8
是 文本编码。但是 .png
不是文本。只需删除编码选项,它应该可以工作。