我正在尝试让tar-js在节点中使用长度超过100个字符的文件名。我在代码中创建了以下覆盖:
var header = require('tar-js/lib/header');
var format = header.format;
// Intercept headers to set the filename prefix if necessary
header.format = function(data) {
if (data.fileName.length > 100) {
if (data.fileName.length > 255) {
throw new Error('File name cannot be longer than 255: ' + data.fileName);
}
var seperatorIndex = data.fileName.indexOf('/', data.fileName.length - 100);
data.filenamePrefix = data.fileName.substr(0, seperatorIndex);
data.fileName = data.fileName.substr(seperatorIndex + 1);
}
return format.apply(this, arguments);
}
当遇到具有长名称的文件时,它似乎正确地拆分了前缀,但是我的tar文件被破坏了,我无法打开它。我尝试tar一个名字短于100个字符的文件夹,一切正常。
我做错了什么?
https://github.com/beatgammit/tar-js
我的标题看起来像这样
000000 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 qqqqqqqqqqqqqqqq
000010 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 qqqqqqqqqqqqqqqq
000020 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 qqqqqqqqqqqqqqqq
000030 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 qqqqqqqqqqqqqqqq
000040 71 71 71 71 71 71 71 71 71 71 71 71 71 2F 71 77 qqqqqqqqqqqqq/qw
000050 65 71 77 65 65 77 2E 74 78 74 00 00 00 00 00 00 eqweew.txt......
000060 00 00 00 00 30 31 30 30 37 30 30 00 30 30 30 30 ....0100700.0000
000070 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 000.0000000.0000
000080 30 30 30 30 30 30 30 00 31 32 33 34 31 33 37 30 0000000.12341370
000090 37 32 35 00 30 35 32 33 30 35 00 20 30 00 00 00 725.052305. 0...
0000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000100 00 75 73 74 61 72 00 30 30 00 00 00 00 00 00 00 .ustar.00.......
000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000140 00 00 00 00 00 00 00 00 00 30 30 30 30 30 30 30 .........0000000
000150 00 30 30 30 30 30 30 30 00 71 71 71 71 71 71 71 .0000000.qqqqqqq
000160 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 qqqqqqqqqqqqqqqq
000170 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 qqqqqqqqqqqqqqqq
000180 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 qqqqqqqqqqqqqqqq
000190 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71 qqqqqqqqqqqqqqqq
0001A0 71 71 71 71 71 00 00 00 00 00 00 00 00 00 00 00 qqqqq...........
0001B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
答案 0 :(得分:0)
我需要再次计算校验和。