Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
c91b6436
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c91b6436
编写于
4月 17, 2018
作者:
S
Shinya Maeda
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make HTTPIO compatible with multi-byte chars (Extracted from ChunkedIO)
上级
c39ad568
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
2888 addition
and
617 deletion
+2888
-617
lib/gitlab/ci/trace/http_io.rb
lib/gitlab/ci/trace/http_io.rb
+16
-6
spec/fixtures/trace/sample_trace
spec/fixtures/trace/sample_trace
+2870
-610
spec/support/http_io/http_io_helpers.rb
spec/support/http_io/http_io_helpers.rb
+2
-1
未找到文件。
lib/gitlab/ci/trace/http_io.rb
浏览文件 @
c91b6436
...
...
@@ -75,18 +75,28 @@ module Gitlab
end
end
def
read
(
length
=
nil
)
def
read
(
length
=
nil
,
outbuf
=
""
)
out
=
""
until
eof?
||
(
length
&&
out
.
length
>=
length
)
length
||=
size
-
tell
until
length
<=
0
||
eof?
data
=
get_chunk
break
if
data
.
empty?
out
<<
data
@tell
+=
data
.
bytesize
chunk_bytes
=
[
BUFFER_SIZE
-
chunk_offset
,
length
].
min
chunk_data
=
data
.
byteslice
(
0
,
chunk_bytes
)
out
<<
chunk_data
@tell
+=
chunk_data
.
bytesize
length
-=
chunk_data
.
bytesize
end
out
=
out
[
0
,
length
]
if
length
&&
out
.
length
>
length
# If outbuf is passed, we put the output into the buffer. This supports IO.copy_stream functionality
if
outbuf
outbuf
.
slice!
(
0
,
outbuf
.
bytesize
)
outbuf
<<
out
end
out
end
...
...
@@ -158,7 +168,7 @@ module Gitlab
# Provider: GCS
# - When the file size is larger than requested Content-range, the Content-range is included in responces with Net::HTTPPartialContent 206
# - When the file size is smaller than requested Content-range, the Content-range is included in responces with Net::HTTPOK 200
@chunk_range
||=
(
chunk_start
...
(
chunk_start
+
@chunk
.
length
))
@chunk_range
||=
(
chunk_start
...
(
chunk_start
+
@chunk
.
bytesize
))
end
@chunk
[
chunk_offset
..
BUFFER_SIZE
]
...
...
spec/fixtures/trace/sample_trace
浏览文件 @
c91b6436
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
spec/support/http_io/http_io_helpers.rb
浏览文件 @
c91b6436
...
...
@@ -44,10 +44,11 @@ module HttpIOHelpers
def
remote_trace_body
@remote_trace_body
||=
File
.
read
(
expand_fixture_path
(
'trace/sample_trace'
))
.
force_encoding
(
Encoding
::
BINARY
)
end
def
remote_trace_size
remote_trace_body
.
length
remote_trace_body
.
bytesize
end
def
set_smaller_buffer_size_than
(
file_size
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录