Компрессор ЗИЛ-130: характеристики, устройство, ремонт
Статья обновлена 13.02.2019
Компрессор представляет собой универсальное средство, имеющее широкое распространение в разных сферах производства, включая автомобильную отрасль. Простые же люди, чтобы не покупать дорогие модели оборудования, решают самостоятельно собрать такой агрегат. В качестве базы применяют компрессор ЗИЛ-130, производимый до 2010 года.
Содержание:
- Характеристики воздушного компрессора автомобиля ЗИЛ-130
- Устройство компрессора
- Система смазки
- Ремонт узлов
- Как самостоятельно сделать компрессор на базе ЗИЛ-130
Характеристики воздушного компрессора автомобиля ЗИЛ-130
Прежде всего следует изучить характеристики компрессора ЗИЛ-130:
- Агрегат имеет 2 цилиндра, диаметр каждого из которых 6 см.
- Производительность устройства 210 л при рабочем объеме всего в 214 см³.
- Скорость вращения составляет 2 тыс. об/мин.
- Параметры внутреннего давления в пневмосистеме равняются 740 кПа.
- Мощность потребления не превышает 21,1 кВт.
Устройство компрессора
Такой двухцилиндровый агрегат имеет устройство поршневого типа. Основной особенностью его функционирования является перекачка воздуха, выполняемая за счет движения поршней. Его конструкция состоит из следующих элементов:
- Сальник.
- Пружины.
- Катетер проводного типа, имеющий каналы.
- Уплотнитель.
Компрессор поршневого типа
Непосредственно поршни выполняются из алюминия, а также имеют специальные пальцы, закрепляемые посредством стопорных колец. Через впускные клапаны происходит закачка воздуха непосредственно в цилиндры компрессора. Там происходит его сжатие поршнями с последующим поступлением в пневмосистему. Далее он выходит из компрессора через специальные нагнетательные клапаны.
Система смазки
В данном агрегате используется система смазки комбинированного типа. Так, сама смазка находится в специальном узле двигателя. Её последующее охлаждение осуществляется посредством применения охлаждающей жидкости.
Ремонт узлов
Отдельно стоит сказать о том, как осуществляется ремонт подобного агрегата при появлении в нем каких-либо поломок. О поломках может свидетельствовать шум либо стук, возникающий в процессе работы компрессора, или же масло, проникающее в наполняемый воздушный баллон:
- Появление трещин либо сколов на самом блоке картера. Для устранения поломки требуется полная замена картера, когда повреждения расположены на стенках. Или заваривают их в ситуации, когда они находятся на фланце крепления, а также имеют незначительные размеры.
- С целью проверки на герметичность самого цилиндра, его следует положить в водяную ванну, после чего под высоким давлением наполнить воздухом. Указывать на наличие повреждений будет появление пузырей. Для устранения такой неполадки выполняется растачивание емкости и её последующее хонингование под нужный размер.
- Когда пришли в негодность шариковые подшипники, проводится их спрессовывание, а также последующая замена на новые.
- В случае, если у шатунной шейки вала наблюдается превышение показателей износа более чем на 0,05 мм, требуется полная замена коленвала.
- С целью ремонта верхней головки шатуна требуется проведение запрессования ремонтной втулки, где заранее делается отверстие. Его диаметр должен составить 14,019 мм.
Допустимый ремонтный размер поршня зависит от цифры, которая выбита на дне изделия. Обычно это +04 либо +08.
Специальный ремкомплект должен быть в каждом мастерской, где планируется использование подобного изделия. Это позволит оперативно восстановить работоспособность устройства.
Схема компрессора
Как самостоятельно сделать компрессор на базе ЗИЛ-130
В зависимости от объема задач, которые планируется выполнять на агрегате, определяется количество переделок ЗИЛовского компрессора. Его перестройка требуется в ситуации, когда планируется длительная эксплуатация при повышенных нагрузках. Для этого потребуются следующие материалы:
- Ресивер.
- Манометр, монтирующийся на ресивер.
- Сама силовая установка.
- Предохранительный клапан.
Когда компрессор создается своими руками, важно корректно выполнить передачу на него крутящего момента. Именно за это будет отвечать клапан и манометр. В процессе сборки следует учитывать следующие особенности:
- Вращающий момент. Если планируется подключение силовой установки к агрегату через шкиф и ремень, потребуется использование более «сильного» двигателя по причине потери подобным образом части мощности. Из-за этого рекомендуется выполнять подключение через редуктор, хотя его цена довольно высокая.
- Двигатель. Этот элемент требуется подбирать так, чтобы параметры его мощности соответствовали потребностям компрессора. Так, для обеспечения требуемого давления скорость вращения должна составлять минимум 2 тыс. об/мин. Это позволит работать агрегату в крейсерском режиме без существенных нагрузок. Для непродолжительного использования достаточно вариантов, выдающих мощность в 1 кВт, а с целью более интенсивной нагрузки следует применять более мощные изделия.
- Ресивер. Создается из металлической емкости средних размеров. Такую конструкцию комплектуют манометром, а также регулятором давления, который устанавливается на выходе. На входе в резервуар устанавливается узел, оборудованный редуктором.
- Система охлаждения. В определенных вариантах компрессоров при работе наблюдается перегрев, из-за чего требуется дополнительное усовершенствование штатной системы охлаждения.
Сам компрессор требуется смонтировать на станину в заранее подготовленное посадочное место. Туда же крепится двигатель, а иные элементы устанавливаются отдельно и подключаются посредством шлангов.
Самостоятельное создание компрессора на базе ЗИЛ-130 позволяет при небольших тратах получить агрегат высокой производительности. Купить нужные элементы можно, используя интернет-каталог (к примеру, Авито), где продаются различные устройства и детали. Каждое из предложений имеет фото и описание состояния и характеристик. При сборе устройства важно учитывать особенности и тонкости создания такой конструкции.
Читайте еще:
технические характеристики, эксплуатация и ремонт
Компрессор двигателя ЗИЛ-130 Причинами поломки компрессора бывает появление шума и стука, появление масла в конденсате сливаемом в воздушных баллонах. Это признаки изношенных поршневых колец.
Компрессор ЗИЛ-130
Компрессор ЗИЛ-130: устройство и работа модели
Принцип работы компрессора сроится на перекачке воздуха. Достигается это за счет движения поршней. Стандартная модификация включает в себя проводной картер, у которого имеются каналы. В центральной камере системы есть сальник. Для работы нагнетателя устанавливается пружина. Чтобы от повышенного давления не повредился компрессор, имеется уплотнитель. Еще в устройстве задействован шток. Когда он отводится назад, воздух попадает на клапан.
Установка компрессора на двигатель.
Установить шайбы, затем вручную компрессор на двигатель, направив прорези крышки-кронштейна на шпильки головки цилиндров. Навернуть от руки гайки крепления компрессора. Надеть на шкив ремень привода, отрегулировать натяжение ремня и затянуть гайки.
При установке компрессора необходимо обеспечить зазор не менее 5 мм между отводящим шлангом радиатора и воздушным патрубком компрессора. Указанный зазор достигается путем повертывания отводящего шланга радиатора Зазор необходим для предотвращения перетирания шланга патрубком компрессора.
Картер модификации
Картер на воздушный компрессор ЗИЛ-130 устанавливается с коромыслом. Непосредственно в передней части устройства имеется специальный вал. Как правило, он смазывается только у основания. Основная проблема картера кроется в износе стоек. Чтобы исправить эту ситуацию, можно отсоединить пробку. Далее потребуется осмотреть ведущий вал. Для замены картера снимается полностью крышка. При возникновении проблем с валом отсоединяется только передняя часть коромысла.
Нагнетательный механизм
Нагнетательный механизм в устройстве выполнен очень компактных размеров. По заверениям специалистов, устройство может выдерживать большое давление. Таким образом, на компрессор ЗИЛ-130 цена вполне оправдана. Седло в устройстве имеет два выхода. С коромыслом указанная деталь не соприкасается.
С картером нагнетательный механизм соединяется через трубку. Вал у модели используется небольшого диаметра. У его основания имеется два кольца и смазка компрессора ЗИЛ-130. В конце вала устанавливается короткая пробка. Выпускной клапан у нагнетателя применяется с защитной втулкой. При возникновении проблем с подачей воздуха в первую очередь проверяется выход нагнетателя. Далее откручивается крышка и полностью прочищается клапан. Следующим шагом специалисты рекомендуют проверить пружину, поскольку на нее оказывается большое давление.
Испытание компрессора
При испытании компрессора на стенде частота вращения вала компрессора должна быть 1800…2000 мин. К компрессору должно быть подведено масло И20А, ГОСТ 20799-75
под давлением 0,25…0‚30 МПа (2,5…3,О кгс/см2), температура масла 35…50 °С.
Компрессор рекомендуется обкатать на холостых оборотах в течение пяти минут. В процессе обкатки следует убедиться в отсутствии течи масла, перегрева подшипников и в отсутствии стука поршней, пальцев и выпускных клапанов.
При 800…2000 мин коленчатого вала компрессора и сообщении баллона 3 с окружающей средой через калиброванное отверстие диаметром 1,6 мм и длиной 3 мм давление в емкости через 50 должно достигнуть величины не менее` 0,6 МПа (6 кгс/см2).
Испытание компрессора на масло пропускную способность, производится при 800…2000 мин и давлении масла 0,25…0‚30 Мпа (2,5…3,0 кгс/ом2). При этом количество масла, вытекающего через сливное отверстие крышки картера компрессора (при открытом калибровочном отверстии), должно быть не более 220 г в течение минуты.
Проверка работы разгрузочной системы производится подачей сжатого воздуха под давлением не более 0,5 МПа (5кгс/см2) в канал разгрузочной камеры, при этом плунжеры 4 (см. рис.8 -11)должны подняться и полностью открыть впускные клапаны 8.
Схема стенда испытания
При снятии давления плунжеры под действием возвратной пружины должны четко возвращаться в исходное положение. Эту операцию проделать не менее трех раз.
Проверить выпускные клапаны на герметичность, подсоединив головку компрессора к баллону 3 (рис.8-13) емкостью 1 л, как указано на схеме, при давлении 0,60…0‚65 МПа (6,0…6,5 кгс/см2). При этом падение давления в баллоне не должно быть более 0,04 Мпа (0,4 кгс/см2) в течение минуты.
Проверка на герметичность соединений производится мыльным раствором при противодавлении воздуха 0,65 МПа (6.5 кгс/см2).
Перёд установкой на компрессор регулятора давления его надо проверить, испытать и отрегулировать для работы в заданных пределах давления воздуха.
Коленчатый вал устройства
Коленчатый вал в данном случае соединен с картером. Выходной канал применяется небольшого диаметра. Цилиндры на компрессор ЗИЛ-130 устанавливаются по сторонам. Также надо отметить, что с нижней стороны модификации имеются две накладки. Вал фиксируется на зажиме. Дополнительного внимания заслуживает тот факт, что направляющие у данного компрессора устанавливаются с левой стороны. При замыкании вала специалисты рекомендуют осмотреть полностью нагнетатель.
Также проверяется картер, поскольку в нем, как правило, собирается весь мусор от переработанного масла. Для правильной работы системы тестируется давление внутри блока. Также надо сразу зачистить все каналы от картера. Сделать это можно при помощи обычного шомпола. Седло при этом предварительно смазывается. Если вал деформирован, его необходимо сразу заменить. На запчасти ЗИЛ-130 цены вполне разумные. Наконечник детали наваривается вручную.
Плунжерный механизм
Плунжерный механизм у данного компрессора используется с подшипниковым рядом. Специалисты говорят о том, что деталь способна выдерживать большие нагрузки при значительных оборотах. Однако важно учитывать, что впускной клапан нуждается в частой чистке. При этом канал довольно часто засоряется. Для его проверки откручивается картер. Также придется отсоединить крышку. Для настройки плунжера применяется регулировочный винт. При вылете накладки можно установить большой винт. При этом необходимо подобрать соответствующее защитное кольцо. Чтобы решить проблемы со стиранием накладки, применяются специальные средства для герметизации блока. Некоторые специалисты рекомендуют периодически зачищать канальцы.
Еще автомобилистов могут поджидать проблемы с основой плунжера. Она представляет собой обычную пластину, которая зафиксирована на резьбе. При большой тряске соединение довольно быстро нарушается. В результате пластина начинает болтаться. Чтобы исправить сложившуюся ситуацию, рекомендуется в первую очередь отсоединить крышку. После этого важно сразу зачистить выходное отверстие. Винт откручивается очень медленно. При этом нужно следить за положением подшипникового ряда.
Как сделать компрессор своими руками
Устройство своими руками делают базе зиловского компрессора. Если оно предназначено для выполнения небольших задач, то переделка компрессора будет минимальная. Его доработка проводится в том случае, если устройство планируют использовать долго и с большими нагрузками. Из материалов понадобятся:
- двигатель;
- ресивер;
- манометр;
- предохранительный клапан.
При изготовлении самодельного аппарата важно правильно передать на агрегат вращающий момент. За давление отвечают клапан и манометр, которые монтируют на ресивер. Тонкости сборки:
- Вращающий момент. Чтобы компрессор сохранил свою мощность и количество оборотов, некоторые мастера делают прямое подключение. Но такое подключение требует наличие мощного двигателя. Поэтому двигатель с агрегатом соединяют посредством ременной передачи. Если соединение сделать через редуктор, то вращающий момент получится достаточным. В основном при изготовлении компрессора используют ременную передачу, так как качественный редуктор стоит дорого.
- Двигатель. Двигатель подбирают таким образом, чтобы он соответствовал всем параметрам компрессора. Чтобы в устройстве сформировалось максимальное давление, скорость вращения двигателя должна быть более 2000 об/мин. Это позволит компрессору работать в легком режиме. Если аппарат будет использоваться без нагрузок и непродолжительный период, то подойдет агрегат мощностью 1 кВТ. Для более интенсивной работы применяют изделия большой мощности.
- Ресивер. Самодельный компрессор должен быть компактных размеров. Для этого из газового баллона или огнетушителя изготавливают ресивер. Также подойдет любая металлическая емкость. Главное, чтобы готовое устройство имело средние размеры. Конструкция оснащается манометром и регулятором давления. Для этого ее нужно доработать. Возле входа в резервуар монтируют готовый узел с редуктором, который можно приобрести в магазине. После установки клапана обратного давления проводят его настройку.
- Система охлаждения и смазка. У некоторых компрессоров во время работы происходит большой перегрев. Чтобы устранить этот недостаток, их дорабатывают системой охлаждения. Для этого в шатунах проделывают отверстия, а нижнюю крышку оборудуют косой трубкой. На выходе из картера монтируют фильтр. Он должен быть прозрачным. Это позволит наблюдать за уровнем масла. Из огнетушителя создают влагоотделитель.
Сальник устройства
Сальник на компрессор ЗИЛ-130 устанавливается с одним уплотнителем. Камера у него используется небольшого размера. В нижней части модификации установлены две направляющие. По сторонам камеры имеются стойки. Также надо отметить, что в верхней части есть одна опора. Картер на компрессор ЗИЛ-130 ставится с правой стороны.
Специалисты говорят о том, что сальник не нуждается в частом обслуживании. Однако стоит учитывать, что у него могут быстро стираться накладки на опоре. Для того чтобы их осмотреть, снимается только передняя стойка. Далее важно отсоединить блок и пластину сальника. Затем мастер сможет достать непосредственно накладки. Если на них видны мелкие трещины, можно попробовать воспользоваться герметиком. Однако специалисты при любой деформации деталей рекомендуют сразу их заменять.
Практичный вариант
Конструкция на базе компрессора от МАЗ, ЗИЛ 130 – 157 зарекомендовала себя как надежное эффективное устройство. Агрегат с этих автомобилей потребует минимальных переделок своими руками. От МТЗ, ГАЗ малопроизводителен, а от КамАЗа нуждается в больших доработках. Ресивер устанавливают исходя из потребностей для пескоструя – газовый баллон на 50 л или готовый от а/м КамАЗ и поменьше от ЗИЛ, в которых уже есть необходимые отверстия.
Примерная компоновка устройства, изготовляемого своими руками, и схема пневматического подключения компрессора следующие. Ресивер, в горизонтальном положении, устанавливают на опоры с колесами. На кусок швеллера шириной 200 – 250 мм через паронитовую прокладку устанавливают компрессор без нижней крышки. На противоположном конце швеллера, через профрезерованные пазы, монтируют электродвигатель на лапах. Пазы необходимы для натяга ремня, который подбирают небольшого сечения, чтобы потери мощности на приводе были минимальны. Швеллер крепят к верху ресивера, подсоединяют разводку от компрессора к ресиверу сверху и с торца, устанавливают манометр контроля давления, с торца монтируют перегрузочный клапан и выходной штуцер с вентилем.
Электродвигатель подбирают в зависимости от потребностей. Для сети 220 В минимальная требуемая мощность трехфазного электродвигателя 1,5 кВт, обороты – 1420 об/мин. Необходимое передаточное отношение между валом мотора и шкивом компрессора в этом случае 1 : 3. При больших мощностях соотношение уменьшают — производительность увеличивается. Для питания в 220 В оптимально 2,2 кВт. Используя 380 В (3 фазы), мощность можно уменьшить.
Наружный диаметр шкивов автомобильных агрегатов приблизительно 210 мм. В случае использования двигателя 1,1 кВт с шкивом 80 мм передаточное число 210/80 = 2,6. Электромотор будет работать на предельной мощности при давлении 8 атм. Производительность 260 л/мин (максимальная) получается при 2500 об/мин вала компрессора. Меняя соотношение, можно достичь 3200 об/мин – максимальные обороты агрегата на ЗИЛ 130.
Замена уплотнителя
Чтобы сделать самостоятельно замену уплотнителя, важно внимательно осмотреть сальник. Как правило, на нем собирается много копоти. Также надо отметить, что уплотнители стираются из-за перегрева колодки. Происходит это из-за забитых канальцев. Чтобы исправить данную ситуацию, рекомендуется открутить защитную крышку компрессора. После этого отвинчиваются кольца. Далее останется только выдвинуть коромысло. Новые накладки устанавливаются на хорошо зачищенную поверхность. На новые запчасти ЗИЛ-130 цены вполне адекватные.
Осмотр седла
Седло на компрессор ЗИЛ-130 устанавливается под нагнетательным механизмом. Чтобы внимательно его осмотреть, надо снять передний шатун. После этого отодвигается непосредственно поршень. Следующим шагом поддевается защитная крышка. Ее пластина фиксируется на четырех винтах, которые можно открутить при помощи ключа. Пробка в данном случае свинчивается против часовой стрелки.
Затем останется только добраться до седла, которое фиксируется на насадке. В нижней части устройства должен находиться сальник. При этом пластина проверяется отдельно. Также стоит осмотреть верхнюю часть седла. На ней часто собирается копоть. Прочистить корпус можно при помощи бензина. В данном случае важно не повредить коромысло.
Типы и применимость регуляторов давления
Все регуляторы давления можно условно разделить на три категории по типу используемых в них клапанов:
- Регуляторы с тарельчатыми клапанами;
- Регуляторы с шариковыми клапанами;
- Регуляторы с клапанами обоих типов.
На сегодняшний день применение находят все типы регуляторов, однако наибольшее распространение получили регуляторы, в которых используются комбинация из шариковых и тарельчатых клапанов. Обычно, шариковыми выполняются впускной и выпускной клапаны, а тарельчатыми — разгрузочный и обратный клапаны.
Также все регуляторы можно разделить на две большие группы:
- Регуляторы, допускающие установку шумоглушителя;
- Регуляторы без шумоглушителя.
Сегодня распространены регуляторы первого типа, причем многие из них поступают в продажу уже с установленным шумоглушителем. Благодаря простоте устройства и доступности шумоглушителя, оборудованные им регуляторы практически не отличаются по цене от простых регуляторов.
Большое преимущество регуляторов давления заключается в их универсальности. Один и тот же регулятор с одинаковым успехом может применяться практически на всех моделях отечественных грузовиков и автобусов — ЗИЛ, КрАЗ, КАМАЗ, МАЗ, «Урал», ЛиАЗ, ПААЗ и т.д. Однако при установке регулятора на конкретный автомобиль нередко приходится производить некоторые регулировки, что не доставляет проблем опытным водителям.
Разборка верхней части регулятора давления
Ключами на 17 ослабляем контргайку, а на 12 выворачиваем регулировочный болт.
Зажмите регулятор в тисках. Ключом на 50 отворачиваем и вынимаем пружину с упорной тарелкой и направляющей в сборе.
Взявшись за поршень изнутри, извлеките его.
Проверьте состояние манжеты. При необходимости замените её, установив раздвоенным концом вниз.
Разобрать обратный клапан можно, вывернув узкогубцами опорную шайбу.
Извлеките пружину с клапаном.
Ключем на 24 откручиваем устройство для подкачки шин и извлекаем его в сборе.
Если воздух выходит из клапана «подкачки», замените два уплотнительных кольца.
Ремонт плунжера
Если ломается плунжер, ремонт компрессора стоит начинать с откручивания переднего картера. Далее отвинчивается защитная крышка. После этого важно снять две пластины, которые зажимаются кольцами. Если они не ослабляются, их можно немного подбить молотком. Следующим шагом осматривается сальник. Как правило, на нем скапливается большое количество грязи.
Если нагнетатель работает нормально, значит, внутри блока все должно быть чистым. При этом клапаны осматриваются отдельно. Чтобы отсоединить плунжер, рекомендуется воспользоваться большим ключом. Самостоятельно это сделать проблематично из-за того, что необходимо постоянно придерживать поршень. В данном случае целесообразнее попросить помощи у товарища.
zip пакет — архив/zip — Go Packages
Package zip обеспечивает поддержку чтения и записи ZIP-архивов.
См.: https://www.pkware.com/appnote
Этот пакет не поддерживает объединение дисков.
Примечание о ZIP64:
Для обеспечения обратной совместимости FileHeader имеет как 32-битный, так и 64-битный размер. поля. 64-битные поля всегда будут содержать правильное значение и для обычных архивов оба поля будут одинаковыми. Для файлов, требующих в формате ZIP64 32-битные поля будут 0xffffffff, а 64-битные вместо них должны использоваться поля.
- Константы
- Переменные
- func RegisterCompressor (метод uint16, comp Compressor)
- func RegisterDecompressor (метод uint16, декомпрессор dcomp)
- тип Компрессор
- тип Декомпрессор
- введите файл
- func (f *File) DataOffset() (смещение int64, ошибка ошибки)
- func (f *File) Open() (io. ReadCloser, ошибка)
- func (f *File) OpenRaw() (io.Reader, ошибка)
- введите FileHeader
- func FileInfoHeader(fi fs.FileInfo) (*FileHeader, ошибка)
- func (h *FileHeader) FileInfo() fs.FileInfo
- func (h *FileHeader) ModTime() time.Timedeprecated
- func (h *FileHeader) Mode() (режим fs.FileMode)
- func (h *FileHeader) SetModTime(t time.Time) устарело
- func (h *FileHeader) SetMode (режим fs.FileMode)
- введите ReadCloser
- func OpenReader(строка имени) (*ReadCloser, ошибка)
- func (rc *ReadCloser) Close() ошибка
- тип Считыватель
- func NewReader(r io.ReaderAt, размер int64) (*Reader, ошибка)
- func (r *Reader) Open(строка имени) (fs. File, ошибка)
- func (z *Reader) RegisterDecompressor (метод uint16, dcomp Decompressor)
- тип Писатель
- функция NewWriter(w io.Writer) *Writer
- func (w *Writer) Close() ошибка
- func (w *Writer) Copy(f *File) ошибка
- func (w *Writer) Create(строка имени) (io.Writer, ошибка)
- func (w *Writer) CreateHeader(fh *FileHeader) (io.Writer, ошибка)
- func (w *Writer) CreateRaw(fh *FileHeader) (io.Writer, ошибка)
- func (w *Writer) Flush() ошибка
- func (w *Writer) RegisterCompressor (метод uint16, comp Compressor)
- func (w *Writer) SetComment (строка комментария) ошибка
- func (w *Writer) SetOffset(n int64)
- Считыватель
- Писатель
- Writer. RegisterCompressor
Просмотр исходного кода
константа ( Сохранить uint16 = 0 // без сжатия Deflate uint16 = 8 // DEFLATE сжато )
Методы сжатия.
Просмотр исходного кода
вар ( ErrFormat = errors.New("zip: недопустимый zip-файл") ErrAlgorithm = errors.New("zip: неподдерживаемый алгоритм сжатия") ErrChecksum = errors.New("zip: ошибка контрольной суммы") )
func RegisterCompressor (метод uint16, comp Compressor)
RegisterCompressor регистрирует пользовательские компрессоры для указанного идентификатора метода. Общие методы Store и Deflate встроены.
func RegisterDecompressor(метод uint16, dcomp Decompressor)
RegisterDecompressor позволяет использовать пользовательские декомпрессоры для указанного идентификатора метода. Общие методы Store и Deflate встроены.
type Compressor func(w io.Writer) (io.WriteCloser, ошибка)
Компрессор возвращает новый сжимающий модуль записи, записывая в w. Метод WriteCloser Close должен использоваться для сброса ожидающих данных в w. Сам компрессор должен быть безопасным для вызова из нескольких горутин. одновременно, но каждый возвращаемый модуль записи будет использоваться только одна горутина за раз.
type Decompressor func(r io.Reader) io.ReadCloser
Декомпрессор возвращает новый декомпрессорный считыватель, читающий из r. Метод Close класса ReadCloser должен использоваться для освобождения связанных ресурсов. Сам декомпрессор должен быть безопасным для вызова из нескольких горутин. одновременно, но каждый возвращенный считыватель будет использоваться только одна горутина за раз.
тип Структура файла { Заголовок файла // содержит отфильтрованные или неэкспортированные поля }
Файл — это отдельный файл в ZIP-архиве. Информация о файле находится во встроенном FileHeader. Доступ к содержимому файла можно получить, вызвав Open.
func (f *File) DataOffset() (смещение int64, ошибка err)
DataOffset возвращает смещение возможно сжатого файла данные относительно начала zip-файла.
Большинству вызывающих абонентов вместо этого следует использовать Open, который прозрачно распаковывает данные и проверяет контрольные суммы.
func (f *File) Open() (io.ReadCloser, ошибка)
Open возвращает ReadCloser, который обеспечивает доступ к содержимому файла. Несколько файлов могут быть прочитаны одновременно.
func (f *File) OpenRaw() (io.Reader, ошибка)
OpenRaw возвращает Reader, который обеспечивает доступ к содержимому файла без декомпрессия.
тип FileHeader struct { // Имя — это имя файла. // // Это должен быть относительный путь, а не начинаться с буквы диска (например, "C:"), // и должен использовать прямую косую черту вместо обратной косой черты. Косая черта в конце // указывает, что этот файл является каталогом и не должен содержать данных. // // При чтении zip-файлов поле Имя заполняется из // zip-файл напрямую и не проверяется на правильность. // Ответственность за очистку этого кода лежит на вызывающем объекте // уместно, включая канонизацию направлений косой черты, // проверка относительных путей и предотвращение пути // обход имен файлов (". ./../../"). Строка имени // Комментарий — это любая произвольная пользовательская строка размером менее 64 КБ. Строка комментария // NonUTF8 указывает, что имя и комментарий не закодированы в UTF-8. // // По спецификации единственной разрешенной кодировкой должна быть CP-437, // но исторически многие читатели ZIP интерпретируют Name и Comment как что угодно // локальная кодировка системы. // // Этот флаг следует устанавливать только в том случае, если пользователь намеревается кодировать непереносимое // ZIP-файл для определенного локализованного региона. В противном случае Писатель // автоматически устанавливает флаг UTF-8 формата ZIP для допустимых строк UTF-8. Логическое значение, отличное от UTF8 CreatorVersion uint16 ReaderVersion uint16 Флаги uint16 // Метод — это метод сжатия. Если ноль, используется Store. Метод uint16 // Modified — время модификации файла. // // При чтении расширенная временная метка предпочтительнее, чем устаревшая MS-DOS // поле даты, а смещение между временами используется как часовой пояс. // Если присутствует только дата MS-DOS, считается, что часовой пояс - UTC. // // При записи используется расширенная временная метка (независимая от часового пояса) // всегда испускается. Устаревшее поле даты MS-DOS кодируется в соответствии с // расположение измененного времени. Изменено время.Время ModifiedTime uint16 // Устарело: устаревшая дата MS-DOS; используйте модифицированный вместо этого. ModifiedDate uint16 // Устарело: устаревшее время MS-DOS; используйте модифицированный вместо этого. CRC32 uint32 CompressedSize uint32 // Устарело: вместо этого используйте CompressedSize64. UncompressedSize uint32 // Устарело: вместо этого используйте UncompressedSize64. Сжатый размер64 uint64 UncompressedSize64 uint64 Дополнительный [] байт ExternalAttrs uint32 // Значение зависит от CreatorVersion }
FileHeader описывает файл внутри zip-файла. Подробнее см. в спецификации почтового индекса.
func FileInfoHeader(fi fs.FileInfo) (*FileHeader, error)
FileInfoHeader создает частично заполненный FileHeader из fs. Информация о файле. Поскольку метод Name в fs.FileInfo возвращает только базовое имя файла, который он описывает, может потребоваться изменить поле Имя возвращаемого заголовка, чтобы предоставить полный путь к файлу. Если требуется сжатие, вызывающие должны установить FileHeader.Method поле; он не установлен по умолчанию.
func (h *FileHeader) FileInfo() fs.FileInfo
FileInfo возвращает fs.FileInfo для FileHeader.
func (h *FileHeader) ModTime() time.Time
ModTime возвращает время модификации в формате UTC, используя устаревший Поля ModifiedDate и ModifiedTime.
Устарело: вместо этого используйте Modified.
func (h *FileHeader) Mode() (mode fs.FileMode)
Mode возвращает биты разрешения и режима для FileHeader.
func (h *FileHeader) SetModTime(t time.Time)
SetModTime устанавливает поля Modified, ModifiedTime и ModifiedDate к заданному времени в UTC.
Устарело: вместо этого используйте Modified.
func (h *FileHeader) SetMode(mode fs.FileMode)
SetMode изменяет биты разрешения и режима для FileHeader.
тип ReadCloser struct { Читатель // содержит отфильтрованные или неэкспортированные поля }
ReadCloser — это ReadCloser, который должен быть закрыт, когда он больше не нужен.
func OpenReader(строка имени) (*ReadCloser, ошибка)
OpenReader откроет Zip-файл, указанный по имени, и вернет ReadCloser.
func (rc *ReadCloser) Ошибка Close()
Close закрывает Zip-файл, делая его непригодным для ввода-вывода.
тип Структура чтения { Файл []*Файл Строка комментария // содержит отфильтрованные или неэкспортированные поля }
Читатель обслуживает содержимое из ZIP-архива.
Пример ¶основной пакет импорт ( "архив/zip" "ФМТ" "ио" "журнал" "Операционные системы" ) основная функция () { // Открываем zip-архив для чтения. г, ошибка := zip.OpenReader("testdata/readme.zip") если ошибка != ноль { log. Fatal(ошибка) } отложить r.Close() // Перебираем файлы в архиве, // вывод части их содержимого. для _, f := диапазон r.File { fmt.Printf("Содержимое %s:\n", f.Name) rc, ошибка := f.Open() если ошибка != ноль { log.Fatal(ошибка) } _, ошибка = io.CopyN(os.Stdout, rc, 68) если ошибка != ноль { log.Fatal(ошибка) } rc.Закрыть() fmt.Println() } }
Выход: Содержимое README: Это репозиторий исходного кода для языка программирования Go.
func NewReader(r io.ReaderAt, size int64) (*Reader, error)
NewReader возвращает новое чтение Reader из r, которое предполагается иметь заданный размер в байтах.
func (r *Reader) Open(строка имени) (fs.File, ошибка)
Open открывает указанный файл в ZIP-архиве, используя семантику fs.FS.Open: пути всегда разделяются косой чертой, без ведущие / или ../ элементы.
func (z *Reader) RegisterDecompressor(метод uint16, dcomp Decompressor)
RegisterDecompressor регистрирует или переопределяет пользовательский декомпрессор для идентификатор конкретного метода. Если декомпрессор для данного метода не найден, Reader по умолчанию ищет декомпрессор на уровне пакета.
тип Writer struct { // содержит отфильтрованные или неэкспортированные поля }
Модуль записи реализует модуль записи zip-файлов.
Пример ¶основной пакет импорт ( "архив/zip" "байты" "журнал" ) основная функция () { // Создаем буфер для записи нашего архива. буфер: = новый (байты. Буфер) // Создаем новый zip-архив. w := zip.NewWriter(buf) // Добавляем несколько файлов в архив. var файлы = [] структура { Имя, основная строка }{ {"readme.txt", "Этот архив содержит текстовые файлы."}, {"gopher.txt", "Имена сусликов:\nДжордж\nДжеффри\nГонзо"}, {"todo.txt", "Получить лицензию на содержание животных.\nНапишите больше примеров."}, } для _, файл := диапазон файлов { f, ошибка := w.Create(file.Name) если ошибка != ноль { log.Fatal(ошибка) } _, ошибка = f.Write([]byte(file.Body)) если ошибка != ноль { log.Fatal(ошибка) } } // Обязательно проверьте ошибку при закрытии. ошибка := w.Close() если ошибка != ноль { log.Fatal(ошибка) } }
Выход:
func NewWriter(w io.Writer) *Writer
NewWriter возвращает новый модуль записи, записывающий zip-файл в w.
func (w *Writer) Ошибка Close()
Close завершает запись zip-файла, записывая центральный каталог. Он не закрывает основной писатель.
func (w *Writer) Copy(f *File) error
Copy копирует файл f (полученный из устройства чтения) в w. Он копирует сырой непосредственно в обход декомпрессии, сжатия и проверки.
func (w *Writer) Create(строка имени) (io.Writer, ошибка)
Create добавляет файл в zip-файл с указанным именем. Он возвращает Writer, в который должно быть записано содержимое файла. Содержимое файла будет сжато с использованием метода Deflate. Имя должно быть относительным путем: оно не должно начинаться с диска. буква (например, C:) или косая черта в начале, и только косая черта позволил. Чтобы создать каталог вместо файла, добавьте в конце слэш к имени. Содержимое файла должно быть записано в io.Writer до следующего вызов Create, CreateHeader или Close.
func (w *Writer) CreateHeader(fh *FileHeader) (io.Writer, ошибка)
CreateHeader добавляет файл в zip-архив, используя предоставленный FileHeader для метаданных файла. Writer становится владельцем fh и может мутировать его поля. Вызывающий не должен изменять fh после вызова CreateHeader.
Это возвращает устройство записи, в которое должно быть записано содержимое файла. Содержимое файла должно быть записано в io.Writer до следующего вызов Create, CreateHeader, CreateRaw или Close.
func (w *Writer) CreateRaw(fh *FileHeader) (io.Writer, ошибка)
CreateRaw добавляет файл в zip-архив, используя предоставленный FileHeader и возвращает Writer, в который должно быть записано содержимое файла. Файлы содержимое должно быть записано в io.Writer до следующего вызова Create, CreateHeader, CreateRaw или Close.
В отличие от CreateHeader, байты, передаваемые Writer, не сжимаются.
func (w *Writer) Ошибка Flush()
Flush сбрасывает все буферизованные данные в основной модуль записи. Вызов Flush обычно не требуется; вызова Close достаточно.
func (w *Writer) RegisterCompressor(метод uint16, comp Compressor)
RegisterCompressor регистрирует или переопределяет пользовательский компрессор для определенного идентификатор метода. Если компрессор для данного метода не найден, Writer по умолчанию поиск компрессора осуществляется на уровне пакета.
Пример ¶основной пакет импорт ( "архив/zip" "байты" "сжать/сжать" "ио" ) основная функция () { // Переопределить компрессор Deflate по умолчанию с более высоким уровнем сжатия. // Создаем буфер для записи нашего архива. буфер: = новый (байты. Буфер) // Создаем новый zip-архив. w := zip.NewWriter(buf) // Зарегистрируйте пользовательский компрессор Deflate. w.RegisterCompressor(zip.Deflate, func(out io.Writer) (io.WriteCloser, ошибка) { вернуть flate.NewWriter(out, flate.BestCompression) }) // Продолжаем добавлять файлы в w. }
Выход:
func (w *Writer) SetComment(строка комментария) ошибка
SetComment устанавливает поле комментария в конце центрального каталога. Его можно вызвать только перед Close.
func (w *Writer) SetOffset(n int64)
SetOffset устанавливает смещение начала zip-данных в базовый писатель. Его следует использовать, когда zip-данные добавляются к существующий файл, например двоичный исполняемый файл. Он должен вызываться перед записью каких-либо данных.
КБ Corel: изучено различное сжатие файлов
Эта статья дополняет информацию, приведенную в разделе Почему некоторые файлы не очень сильно сжимаются?
Наряду с неотъемлемыми отличиями файлов одного типа от файлов другого типа, файлы одного типа (например, два текстовых файла) часто сжимаются по-разному. Когда файл заархивирован, тип информации в этом файле и то, как эти данные отформатированы, упростят или усложнят сжатие, независимо от выбранного вами метода сжатия. Кроме того, размер файла влияет на то, насколько он может быть сжат. Например, небольшие файлы часто содержат мало данных, поэтому их не так много для сжатия.
В следующей таблице показаны некоторые из этих различий. В таблице представлены результаты теста с достаточно большими наборами файлов определенных типов. Файлы также сильно различаются по своему содержанию. Двенадцать файлов Zip были созданы из файлов шести разных типов. Каждый из этих наборов файлов был заархивирован один раз с использованием сжатия Legacy (Deflate) (файл .zip) и один раз с использованием сжатия лучшего метода (файл .zipx). В последней строке таблицы отображается информация о сжатии всех шести наборов файлов в один файл .zip и один файл .zipx.
Испытание на сжатие 1 | Сдувание (.zip) | Лучший м.б. (.zipx) | ||
---|---|---|---|---|
Тип файла | % диапазона | среднее | % диапазона | среднее |
Текстовый файл (. txt) | от 0% до 99% | 73% | от 0% до 99% | 81% |
Microsoft Word (.doc) | от 2% до 98% | 70% | от 2% до 99% | 81% |
Microsoft Excel (.xls) | от 22% до 92% | 84% | от 23% до 97% | 93% |
Исполняемый файл (.exe) | от 0% до 92% | 47% | от 0% до 95% | 52% |
Файл изображения (.jpg) | от 0% до 62% | 1% | от 0% до 64% | 21% |
Библиотеки динамической компоновки (.dll) | от 34% до 95% | 67% | от 47% до 97% | 75% |
Смешанный набор файлов | от 0% до 99% | 42% | от 0% до 99% | 55% |
Примечание: Эти тесты НЕ предназначены для представления типичных результатов. Это примеры, основанные на доступных больших наборах файлов из этой офисной среды. Все файлы каждого типа, найденные на сетевом диске, были заархивированы для тестовых Zip-файлов, указанных выше. Кроме того, следует учитывать следующие факторы:
- Файлы Microsoft Office 2013/2010/2007 на самом деле представляют собой Zip-файлы с пользовательскими расширениями и плохо сжимаются. Для этого теста были включены только файлы Office более раннего типа (.doc и .xls, а не .docx и .xlsx).
- Файлы Microsoft Word и многие файлы Microsoft Excel часто содержат встроенные изображения и/или другие изображения, что снижает степень сжатия этих файлов. Очень немногие файлы Office на этом компьютере содержали изображения.
- Поскольку все файлы изображений (.jpg) на этом компьютере были включены в тест, было довольно много очень маленьких файлов, которые плохо сжимались даже при использовании метода Best. Кроме того, было несколько файлов .jpg для использования в качестве фона или шаблонов. Эти последние файлы из-за их простоты (часто только сплошной цвет) сжимаются намного лучше, чем средний файл .jpg.
Эта вторая таблица представляет еще один тест с использованием двух текстовых файлов. Оба тестируемых текстовых файла имеют размер 21,6 МБ. Однако файл 21M_a.txt содержит довольно типичную информацию с предложениями разной длины и небольшим количеством повторений, тогда как в файле 21M_b.txt короткий раздел копируется снова и снова. Это показывает, как файлы одного типа и размера могут давать разные результаты при сжатии.
Испытание на сжатие 2 | Сдувание (.zip) | Лучший м.б. (.zipx) |
---|---|---|
Файл | размер на молнии | размер на молнии |
21M_a.txt | 7,86 МБ | 4,77 МБ |
21M_b.txt | 102,34 КБ | 37,15 КБ |
Тест сжатия 2 показывает, что два файла одного типа и одного размера могут быть сжаты в разной степени.