标签: binaryfiles

使用Git管理大型二进制文件

我正在寻找如何处理我的源代码(Web应用程序)所依赖的大型二进制文件的意见.我们目前正在讨论几种选择:

  1. 手动复制二进制文件.
    • 亲:不确定.
    • Contra:我强烈反对这一点,因为它增加了在设置新站点/迁移旧站点时出错的可能性.建立另一个障碍.
  2. Git管理所有这些.
    • 专业:删除'忘记'复制重要文件的可能性
    • 反对:膨胀存储库并降低管理代码库和检出,克隆等的灵活性将需要相当长的时间.
  3. 单独的存储库.
    • Pro:检查/克隆源代码的速度很快,图像可以在自己的存储库中正确存档.
    • Contra:删除了在项目中拥有唯一的 Git存储库的简单性.它肯定会介绍一些我没有想过的其他事情.

您对此有何体验/想法?

另外:有没有人有多个Git存储库的经验并在一个项目中管理它们?

这些文件是程序的图像,该程序生成包含这些文件的PDF.文件不会经常更改(如年份),但它们与程序非常相关.没有文件,程序将无法运行.

git version-control binaryfiles large-files

517
推荐指数
10
解决办法
18万
查看次数

我可以在Visual Studio中十六进制编辑文件吗?

我想编辑一个二进制文件,但我不想使用除Visual Studio之外的其他工具,因为来回切换很麻烦.

是否可能有一个加载项或一些内置功能可以在Visual Studio中执行此操作?

binaryfiles editor visual-studio

145
推荐指数
3
解决办法
8万
查看次数

NodeJS:将base64编码的图像保存到磁盘

My Express应用程序从浏览器接收base64编码的PNG(使用toDataURL()从canvas生成)并将其写入文件.但该文件不是有效的图像文件,"文件"实用程序只是将其标识为"数据".

var body = req.rawBody,
  base64Data = body.replace(/^data:image\/png;base64,/,""),
  binaryData = new Buffer(base64Data, 'base64').toString('binary');

require("fs").writeFile("out.png", binaryData, "binary", function(err) {
  console.log(err); // writes out file without error, but it's not a valid image
});
Run Code Online (Sandbox Code Playgroud)

base64 image binaryfiles node.js

143
推荐指数
6
解决办法
16万
查看次数

存储上传图像,SQL数据库或磁盘文件系统的最佳位置是什么?

我正在编写一个允许用户将图像上传到服务器的应用程序.我希望每天大约有20张图片都是jpeg,可能没有编辑/调整大小.(这是另一个问题,如何在存储之前调整服务器端的图像大小.也许有人可以请求在评论中删除.NET资源等等).我现在想知道存储上传图像的最佳位置是什么.

  • 将图像作为文件存储在文件系统中,并在表格中创建一条记录,其中包含该图像的确切路径.

  • 或者,使用数据库服务器的"图像"或"二进制数据"数据类型将图像本身存储在表中.

我看到两者的优点和缺点.我喜欢a)因为我可以轻松地重新定位文件,只需要更改表条目.另一方面,我不喜欢在Web服务器上存储业务数据,我真的不想将Web服务器连接到任何其他保存业务数据的数据源(出于安全原因)我喜欢b)因为所有信息都是在一个地方,可以通过查询轻松访问.另一方面,数据库将很快变得非常大.外包数据可能更困难.

database filesystems binaryfiles image-uploading

135
推荐指数
10
解决办法
10万
查看次数

使用请求获取Node.js中的二进制内容

我正在尝试GET使用二进制数据request,并有类似的东西:

var requestSettings = {
    method: 'GET',
    url: url,
};
request(requestSettings, function(error, response, body) {
    // Use body as a binary Buffer
}
Run Code Online (Sandbox Code Playgroud)

body总是与预期的几个字节不同.经过进一步调查后,我发现request假设body是字符串并替换了所有非unicode字节.

我试着补充一下

encoding: 'binary'
Run Code Online (Sandbox Code Playgroud)

requestSettings,但它并没有帮助.

我怎样才能获得二进制数据?

javascript binaryfiles request node.js requestjs

125
推荐指数
1
解决办法
3万
查看次数

使用linux命令将十六进制信息转换为二进制

我的linux系统上有这个二进制文件..

 udit@udit-Dabba ~ $ cat file.enc
 Salted__s?bO??<0?F???Jw!???]?:`C?LK??l
Run Code Online (Sandbox Code Playgroud)

使用hexdump命令我看到这样的信息..

 udit@udit-Dabba ~ $ hexdump -C file.enc
 00000000  53 61 6c 74 65 64 5f 5f  1b 73 a1 62 4f 15 be f6  |Salted__.s.bO...|
 00000010  3c 30 cc 46 ee 10 13 11  84 bf 4a 77 21 a4 84 99  |<0.F......Jw!...|
 00000020  0e 5d ef 11 18 3a 60 43  a0 4c 4b 1e c8 86 e6 6c  |.]...:`C.LK....l|
 00000030
Run Code Online (Sandbox Code Playgroud)

现在我给了一个其他系统的文件,其内容是这样的..

 53 61 6c 74 65 64 5f 5f  1b 73 …
Run Code Online (Sandbox Code Playgroud)

c command hexdump binaryfiles command-line-arguments

76
推荐指数
1
解决办法
7万
查看次数

使用git版本控制系统锁定二进制文件

一年半以来,我一直关注着git社区,希望能够远离SVN.阻碍我的一个特殊问题是无法锁定二进制文件.在过去的一年里,我还没有看到这个问题的发展.我知道锁定文件违反了分布式源代码控制的基本原则,但我没有看到Web开发公司如何在有可能发生二进制文件冲突时利用git跟踪源代码和映像文件更改.

为了实现锁定的效果,必须识别"中央"存储库.无论git的分布式特性如何,大多数公司都将拥有一个软件项目的"中央"存储库.我们应该能够将文件标记为需要从指定地址的管理git存储库进行锁定.也许这很难,因为git跟踪文件内容而不是文件?

你们有没有经验处理应该在修改前锁定的git和二进制文件?

注意:看起来Source Gear的新开源分布式版本控制项目Veracity已将锁定作为其目标之一.

git version-control dvcs binaryfiles

75
推荐指数
8
解决办法
5万
查看次数

递归地扩展目录,忽略所有二进制文件:

在Fedora Constantine盒子上工作.我diff递归地查看两个目录以检查源更改.由于项目的设置(在我自己参与所述项目之前!叹息),目录包含源和二进制文件,以及大型二进制数据集.虽然diffing最终可以在这些目录上运行,但如果我可以忽略二进制文件,则可能需要20秒.

据我了解,DIFF没有一个"忽略二进制文件"模式,但确实有一个忽略的参数,它会忽略正则表达式的文件.我不知道在那里写什么来忽略二进制文件,无论扩展名如何.

我正在使用以下命令,但它不会忽略二进制文件.有谁知道如何修改此命令来执行此操作?

diff -rq dir1 dir2

bash shell diff binaryfiles

73
推荐指数
4
解决办法
9万
查看次数

如何在unix系统上编辑二进制文件

在Windows机器上,有许多第三方编辑器可用于编辑二进制文件.我相信在*nix系统中应该有一些similer buildin.任何想法如何在unix上编辑二进制文件?

unix linux binaryfiles hex-editors

62
推荐指数
6
解决办法
14万
查看次数

如何将二进制文件读入无符号字符的向量中

最近我一直在问编写一个函数读取二进制文件到std::vector<BYTE>哪里BYTEunsigned char.我很快就找到了这样的东西:

#include <fstream>
#include <vector>
typedef unsigned char BYTE;

std::vector<BYTE> readFile(const char* filename)
{
    // open the file:
    std::streampos fileSize;
    std::ifstream file(filename, std::ios::binary);

    // get its size:
    file.seekg(0, std::ios::end);
    fileSize = file.tellg();
    file.seekg(0, std::ios::beg);

    // read the data:
    std::vector<BYTE> fileData(fileSize);
    file.read((char*) &fileData[0], fileSize);
    return fileData;
}
Run Code Online (Sandbox Code Playgroud)

这似乎是不必要的复杂,并且char*我在呼叫时被迫使用的明确演员file.read并没有让我感觉更好.


另一种选择是使用std::istreambuf_iterator:

std::vector<BYTE> readFile(const char* filename)
{
    // open the file:
    std::ifstream file(filename, std::ios::binary);

    // read the data:
    return std::vector<BYTE>((std::istreambuf_iterator<char>(file)),
                              std::istreambuf_iterator<char>()); …
Run Code Online (Sandbox Code Playgroud)

c++ file-io binaryfiles vector

62
推荐指数
3
解决办法
6万
查看次数