相关疑难解决方法(0)

如何在使用curl时正确处理gzip压缩页面?

我编写了一个bash脚本,它使用curl从一个网站输出,并在html输出上做了一堆字符串操作.问题是当我针对返回其输出gzip的网站运行它时.在浏览器中访问该网站工作正常.

当我手动运行curl时,我得到gzipped输出:

$ curl "http://example.com"
Run Code Online (Sandbox Code Playgroud)

这是该特定网站的标题:

HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html; charset=utf-8
X-Powered-By: PHP/5.2.17
Last-Modified: Sat, 03 Dec 2011 00:07:57 GMT
ETag: "6c38e1154f32dbd9ba211db8ad189b27"
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: must-revalidate
Content-Encoding: gzip
Content-Length: 7796
Date: Sat, 03 Dec 2011 00:46:22 GMT
X-Varnish: 1509870407 1509810501
Age: 504
Via: 1.1 varnish
Connection: keep-alive
X-Cache-Svr: p2137050.pubip.peer1.net
X-Cache: HIT
X-Cache-Hits: 425
Run Code Online (Sandbox Code Playgroud)

我知道返回的数据是gzip压缩的,因为这会返回html,如预期的那样:

$ curl "http://example.com" | gunzip
Run Code Online (Sandbox Code Playgroud)

我不想通过gunzip管道输出,因为脚本在其他站点上按原样运行,并且通过gzip管道将破坏该功能.

我试过的

  1. 更改用户代理(我尝试了我的浏览器发送的相同字符串,"Mozilla/4.0"等)
  2. 男人卷曲
  3. 谷歌搜索
  4. 搜索stackoverflow

一切都空了

有任何想法吗?

bash curl gzip

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

git树对象的内部格式是什么?

git树对象的内容格式是什么?

blob对象的内容是blob [size of string] NUL [string],但对于树对象是什么?

git git-ls-tree

30
推荐指数
4
解决办法
1万
查看次数

如何在不使用git的情况下查看git对象和索引

使用OS X终端,

如何以纯文本格式查看这些文件的内容?

git macos terminal version-control

16
推荐指数
4
解决办法
7904
查看次数

如何在hadoop中读取.deflate文件

我有一些pigpart-r-00000.deflate扩展名的生成文件.我知道这是一个压缩文件.如何以可读格式生成普通文件.当我使用时hadoop fs -text,我无法获得纯文本输出.输出仍然是二进制的.我该如何解决这个问题?

hadoop

15
推荐指数
2
解决办法
2万
查看次数

直接提交到裸存储库

一些背景

这适合什么

以协作为中心的Web应用程序,提供git托管(作为barerepos)

我们想做什么

允许用户将一组文件直接添加到其现有存储库.

我的问题

是否有工具或方法手动创建仅涉及将新文件添加到git仓库的提交?

我们现在可以使用临时服务器端稀疏检出来执行此操作,但我们希望优化此过程.

git

11
推荐指数
1
解决办法
4204
查看次数

git commit对象的文件格式是什么?

上下文:我希望能够通过我的git提交消息和提交进行搜索而无需经历令人费解的复杂git grep命令,因此我决定看看如何存储git commit消息.

我看了一下.git文件夹,它看起来像是存储的提交

.git/objects 
Run Code Online (Sandbox Code Playgroud)

.git对象文件夹包含一堆名称为a6和9b的文件夹.这些文件夹中的每个文件夹都包含一个名称类似于提交的文件2f29598814b07fea915514cfc4d05129967bf7.当我在文本编辑器中打开其中一个文件时,我会感到胡言乱语.

  1. 什么文件格式是这个乱码/如何存储git提交对象?
  2. 在这个git commit日志中,文件夹9b包含一个commit sha

    aed8a9f773efb2f498f19c31f8603b6cb2a4bc
    
    Run Code Online (Sandbox Code Playgroud)

    为什么,并且是否存在多个提交sha将存储在文件9b中的情况?

  3. 有没有办法将这个乱码转换成纯文本,以便我可以在文本编辑器中混淆提交?

git

11
推荐指数
3
解决办法
7473
查看次数

一个提交对象怎么可能有 2 个作者?

提交487128950df6ee433c131b5feaafe81ee86629f4可以在https://github.com/signalwire/freeswitch.git找到。

git log -1 487128950df6ee433c131b5feaafe81ee86629f4 --pretty=fuller 印刷:

commit 487128950df6ee433c131b5feaafe81ee86629f4
Author:     Travis Cross <tc@traviscross.com>
AuthorDate: Fri Mar 21 06:12:02 2014 +0000
Author:     Anthony Minessale <anthm@freeswitch.org>
AuthorDate: Fri Mar 14 02:59:13 2014 +0500
Commit:     Travis Cross <tc@traviscross.com>
CommitDate: Mon Mar 24 12:54:50 2014 +0000

    Use the system version of APR / APR-util if possible

    Autodetect whether the system libapr / libaprutil has our
    necessary modifications and use it if it does.
Run Code Online (Sandbox Code Playgroud)

它有 2 个作者。如果 fsck 检查打开,则将此提交推送到 Gitlab 或 …

git

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

git tag 对象的格式是什么以及如何计算其 SHA?

我熟悉Git 如何为文件(blob)创建 SHA1 哈希值,但不熟悉如何为标签对象创建它们。如果我创建一个带注释的标签,我认为它们是,但是配方是什么?我如何在 Git 之外复制它(例如,在 Perl 或 Python 中)?

tags git hash sha1

4
推荐指数
1
解决办法
2574
查看次数

如何为commit vs tree vs blobs计算哈希值?

我对如何计算提交,树和blob的SHA-1哈希感到困惑.根据本文,提交哈希值基于以下因素计算:

  1. 提交的源代码树(对所有子树和blob进行解析)
  2. 父提交sha1
  3. 作者信息
  4. 提交者信息(对,那些是不同的!)
  5. 提交消息

树木和斑点哈希是否也涉及相同的因素?

git hash

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

在命令行中解压zlib文件

当 Git 存储文件的快照时,它会存储一个称为 blob 的对象。

这是使用 zlib 压缩的。请参阅http://nfarina.com/post/9868516270/git-is-simler;要么我是瞎子,要么他没有解释文件 blob 是如何在第一处解压缩的(而其他所有内容都像向菜鸟一样解释)

我们如何提取它并查看 blob 的内容?谷歌搜索的大部分结果适用于脚本/程序中的解压缩,而不是手动/CL:

Deflate 命令行工具 https://unix.stackexchange.com/q/22834

我一直在寻找一种单行命令行方法来在单个文件上执行此操作。

提前致谢!

(即使这个问题听起来像是重复的,但另一个链接中的一系列答案并不像这里的答案那么准确。我认为这个线程应该保持活跃,或者将这个答案发布在那里,以帮助其他人解决不复杂的问题泄气的方法)

unix compression git zlib

2
推荐指数
1
解决办法
5972
查看次数

带有78 9C标头的数据库文件?

我来使用一种奇怪的数据库文件格式.每个DB都带有两个文件:一个是"database.db",另一个是"database.key".

".db"文件始终以0x78 0x9C二进制头开头,而".key"始终在文件的随机部分中包含字符串"1.00 Peter's B Tree".

在线查看我发现标头0x78 0x9C可以引用压缩Zlib,但是没有找到任何方法来查看数据库的内容.

这里有没有人知道可以帮助我这种格式的东西?Thnaks :)

编辑1: ".db"文件似乎包含多个zlib放气流:签名0x78 0x9C不仅出现在文件的开头,而且出现在文件的不同部分.例如,这是我可以在一个文件中找到的一些流:

78 9C CB 63 40 07 33 76 5B 6A AF 78 DD 54 23 CE C9 90 C4 78 89 81 89 81 F1 22 86 9A ED 6A D7 44 F6 03 D5 B0 31 30 94 60 91 F6 D4 2A 76 3B 0C 94 E6 63 60 2C 51 B6 63 00 00 22 13 11 57
78 9C CB 63 40 07 …
Run Code Online (Sandbox Code Playgroud)

database binary b-tree zlib

1
推荐指数
1
解决办法
3460
查看次数

PHP的'gzuncompress'函数在shell中?

可能重复:
Deflate命令行工具

是的,我知道我可以在shell上使用PHP本身,但我需要在PHP可用之前部署的脚本中使用此功能.

我已经尝试过gzip,unzip但是我的参数不正确或者它们只是不使用相同的压缩.

我想在bash脚本中使用它.进入更高级别的脚本语言不是一种选择.


我编写了以下PHP脚本用于测试目的:

#!/usr/bin/php
<?
  $contents = file_get_contents( $argv[1] );
  $data = gzuncompress( $contents );
  echo substr( $data, 0, 20 ) . "\n";
?>
Run Code Online (Sandbox Code Playgroud)

这会输出我所期望的(解码数据的开头).

如果我将同一个文件传递给gunzip:

$ gunzip -c data
gzip: data: not in gzip format
Run Code Online (Sandbox Code Playgroud)

如果我尝试unzip:

$ unzip data
Archive:  data
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory …
Run Code Online (Sandbox Code Playgroud)

php compression bash zlib

0
推荐指数
1
解决办法
2623
查看次数

git存储blob对象在哪里?

我知道git压缩文件,然后计算SHA1并将其存储在内,.git/objects/我们可以看到内容使用,git cat-file -p 'sha1'但我很想知道git在哪里存储压缩的blob对象.

如下文所述

http://gitready.com/beginner/2009/02/17/how-git-stores-your-data.html

更新我只能看到SHA1.git/objects我认为是参照实际的斑点,而不是BLOB

git

0
推荐指数
1
解决办法
469
查看次数

标签 统计

git ×9

zlib ×3

bash ×2

compression ×2

hash ×2

b-tree ×1

binary ×1

curl ×1

database ×1

git-ls-tree ×1

gzip ×1

hadoop ×1

macos ×1

php ×1

sha1 ×1

tags ×1

terminal ×1

unix ×1

version-control ×1