За последние 24 часа нас посетили 51487 программистов и 1756 роботов. Сейчас ищут 1376 программистов ...

Tar-архивы, отдача директории, отдача по частям и прочее

Тема в разделе "Прочие вопросы по PHP", создана пользователем kuraga, 28 дек 2011.

  1. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Не знаю, как это делают... Есть файлы на диске. Надо их "скачать из браузера". Ну, обычно мы делаем tar-архив, и его отдаем. Но это удвоение места на диске! А не делают этот tar "на лету", отдавая нужный кусочек, потом следующий... А?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  3. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Спасибо! Я вижу, Вы тож любитель извращенных вопросов ;)

    P.S. Хотя тут вопрос был больше про то, как на практике резанный Tar на лету делают...
    Но, наверное, это в иной форум... :)
     
  4. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    На другом форуме предложили решение:
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    чтобы контролировать процесс - скрипт по ссылке что я дал

    а направить поток не мешает ничего. только я не очень понимаю зачем.
     
  6. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Ваши идеи по организации скачивания директории?
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    В зип и отдал =)
    Можно даже не хранить в папке, а сразу в зипе. Зависит от обстоятельсв.

    Что у вас за проект?
     
  8. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Ага, и для этого зипа Вам придется иметь дофига свободного места на диске, вау! А пользователь взял и оборвался. И ЦПУ мы сколько потратили на этот зип?

    Нет у меня проекта. Хоть я и неверующий, но ковчег построили ДО потопа. Вчера в SPY GAMES говорили :D Просто размышляю...
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Вы какую-то чепуху городите.

    Вы хотите оттдать папку? Отдайте в архиве. Самый распространенный архиватор - зип.

    Если вы проводите чисто теоретические изыскания, то флаг вам в руки.
     
  10. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    ВОТ! И после этого тупые МЫ, задающие вопросы. Эх, практики... А подумать лень.

    Я не хочу заставлять заказчика оплачивать лишнее ДП и ЦПУ для моих сайтов. Между тем, как разработчик, хочу сделать так, чтобы мой продукт умел такие банальные вещи. Но делать их бездумно не собираюсь, благо, возраст позволяет.

    Захожу на форум раз в год и вижу людей, которые не хотят думать... Форум? Или PHP?

    Особо видящим чепуху повторяю. Ваш способ предполагает хранение архива, сопоставимого с размером папки, на диске. Это накладные расходы ДП, никто не показал мне необходимость этого. Или я Вас не понимаю...
     
  11. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Ну, архивы, наверно всё-таки не так много весят. По крайней мере если там тексты всякие, скрипты, вёрстка. Если архив с jpg какими-нибудь - то да, прилично. Тебе в любом случае придётся чем-то жертвовать. Если ты хранишь архив на диске - то расходуется дополнительное место, при этом процессор погрузится только один раз при создании архива (ну, видимо, и при изменении архива). Если ты не хранишь архивы постоянно - дополнительное место не расходуется, но процессор при этом грузится каждый раз, когда скачивают архив. По другому никак. Хранить архив на диске - это ещё и дополнительные сложности, потому как придётся контроллировать изменения папки (когда в папке появляется что-то новое или удаляется что-то старое или изменяется). При изменении папки придётся также менять архив.

    Я бы не стал хранить архивы папок на диске, а генерировал бы их на лету и отдавал пользователю. Наврядли этой функцией будут пользоваться чаще, чем раз в неделю, по этому не думаю, что это создаст серьёзные проблемы с точки зрения загрузки процессора.

    Как вариант, если очень хочется всё же хранить архивы на диске - можешь не создавать ничего изначально. При первом скачивании данной какой-то папки - создавать архив этой папки, отдавать пользователю и сохранять. При последующих скачиваниях этой папки - проверять, есть ли уже её архив, если есть - отдавать его, а если нет - то, соответственно, создавать, отдавать пользователю и сохранять. При изменениях в папке (новые файлы, изменения файлов и т.п.) - проверять, есть ли архив этой папки и если есть - удалять его (новый не создавать). Вот как-то так.
     
  12. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    sobachnik
    Это все ясно. Вопрос - как архивы лихо ГЕНЕРИТЬ НА ЛЕТУ, ПО ЧАСТЯМ. А об этом тут писать не хотят. Ибо "ZIP самый распространенный, вот и пакуй".
     
  13. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    kuraga
    Ну, возможно просто те, кто заходил в тему - и сами не знают, как это делать "ЛИХО" :) Я, например, не знаю. Никогда не генерировал архивы средствами PHP - просто не сталкивался никогда с такой необходимостью. Вот ты сейчас столкнулся - возьми и попробуй разные библиотеки для создания архивов - гоняй каждую по несколько раз, сравнивай время работы, смотри, сколько памяти было израсходовано и т.п. Потом можешь и тут показать результаты исследований.
    Что касается твоего примера про заказчика - я бы просто предоставил FTP доступ к папке его сайта и пусть делает там что хочет. Если не знает, что такое FTP - объясню.
     
  14. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    sobachnik
    Согласен, просто не хотел изобретать велосипед, если он изобретен.
    Про заказчика я имел ввиду просто то, что он не должен платить, если есть метод эффективнее и дешевле.
     
  15. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Мне кажется, что скачивать целиком папки по FTP - это дешевле и эффективнее ;)
     
  16. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Это тоже условный пример ;) Вообразите социальную сеть. Не на PHP. Это тоже условность ;)
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Он просто фантазирует.

    Нет задачи - нет решения.

    Бредор который генерит данный пенсионер не связан с реальностью.
     
  18. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Как Вы узнали, что я пенсионер?)))

    Ну вот Вам задача... ВКонтакте - наладить скачивание частей фотоалььбомов. Картинки отмечаю чекбоксом, потом сабмит. Жду разумного решения, представитель молодежи :)
     
  19. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Самое интересное то, что на форумах других языков наплодили интересные решения, хотя порой и смешные, и всем интересно участвовать в дискуссии :)
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Вы причисляете себя к несуществующей группе, которую противопоставляете друй несущестующей группе. Ваш возраст при этом не важен. Поведение типичное для скучающих пенсионеров, решившихся на подвиги. Часто встречается среди приверженцев альтернативной истории (атланты и т.п.) и альтернативной же науки (эфир).
     
  21. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Вы правы во всем, кроме эфира :) В детстве играл в Атлантиду... Психолог из Вас неплохой...
    Только какие группы-то?
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А я люблю этот форум за то, что плотность полезной информации на нем выше, чем где бы то ни было.

    В ваших вопросах вы не даете достаточно данных для принятия решения. Так что вести разумный диалог по этим вопросам невозможно. Если вам интересно на самом деле, то можно обсудить. Но тогда придется ограничить фантазию и говорить по делу.
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Мне неудобно квотить с планшета. Я потом покажу, как до компа дойду.
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Вы исходите из экономии денег. На самом деле под такой функционал вполне можно отвести и 200 000 рублей. Это вовсе не такие большие деньги как вам с вашей пенсией кажется. Это не оскорбление. Это суровая реальность. Формировать архив и хранить его несколько часов после последнего запроса. Для докачки.
     
  25. kuraga

    kuraga Активный пользователь

    С нами с:
    16 фев 2008
    Сообщения:
    97
    Симпатии:
    0
    Пока из всех Ваших сообщений полезно было одно... Что кагбэ портит статистику. И я ее тоже порчу :D