Xpoint
   [напомнить пароль]

Организация файлов для скачивания - прослушивания

Метки: [без меток]
2006-07-25 10:46:07 [обр] Алексей[досье]

Требуют добавить возможность скачивать купированные музыкальные трэки для предварительного ознакомления, по 30сек.
Как это дело лучше организовать?

Изначально есть поле `tracks` типа text, в котором в хтмл виде хранятся название трэков для каждого диска.
Первое что приходит в голову это созданть таблицу примерно вида:

CREATE TABLE `downloads` (
  `download_id` int(11) NOT NULL auto_increment,
  `path` varchar(255) default NULL,
  `description` text,
  `counter` int(11) default NULL,
  `title` varchar(255) default NULL,
  `pos` int(11) NOT NULL default '0',
  PRIMARY KEY  (`download_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

куда заливаем файлики, а потом правим ручками в `tracks` что то в духе BBкода - [MP3=path]Название трэка[/MP3], ну а на выходе получаем линк со значком для скачивания и все такое.

Может кто подскажем как это дело более граммотно реализовать?
Спасибо

спустя 2 часа 46 минут [обр] Миша Спларов(0/34)[досье]

У вас, я так понимаю, один трек может быть на разных дисков. Следовательно:

Таблица disks:
id
title
...

Таблица tracks:
id
title
...

Таблица tracks_disks:
track_id
disk_id

Выборка треков для диска будет происходить примерно таким образом: SELECT * FROM tracks t, tracks_disks td WHERE td.disk_id=777 AND td.track_id=t.id — 777 - номер запрашиваемого диска.

спустя 4 минуты [обр] Алексей[досье]

Миша Спларов[досье] нет), один трэк может быть на одном диске. то есть песня из одного альбома не может быть на чужом альбоме)

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

заводить таблицу с трэками и привязкой к дисками..хм..это стоко перелапатить нужно.может есть еще варианты?

спустя 1 час 3 минуты [обр] Миша Спларов(0/34)[досье]
Алексей[досье] Лучше всё-таки в отдельной таблице хранить. В которой будет колонка disk_id по которому будет идти связь с дисками. Лучше тем, например, что если когда-нибудь захотите изменить хтмл-код представления треков это будет сделать намного проще. Также искать в хтмл коде сложнее. Да и другие плюсы хранения треков в таблице БД можно найти :-)
спустя 1 час 7 минут [обр] Алексей[досье]
понятно.то что вы предложили это классическая схема.
а как тогда лучше интерфейс добавления лучше и удобнее организовать?
спустя 31 минуту [обр] Алексей Севрюков(2/1280)[досье]
Алексей[досье] Да очень просто, заводите альбом, потом выбираете нужный альбом и к нему забиваете сами треки. Выборку альбомов лучше сделать попервым буквам - навигация получится более быстрой и удобной.
спустя 2 часа 19 минут [обр] Алексей[досье]

то есть я так понял получается два этапа. первый это добавление альбома. описание ,цена и все такое, а потом уже закачивание трэков.

я так понял что все трэки закаченные файлы мы пишем в общую таблицу Downloads?

в таблицу tracks пишем вообще все трэки, то есть названия трэков, даже если скачать нельзя. так как с альбома можно будет скачать 2-3 трэка.

как к этому делу привязать реально закаченные песни?
непонятно обьяснил(

то есть если это не просто название трэка а еще и и закаченный трэк, чтобы выцепить по нему инфу из Downloads?

спустя 14 минут [обр] Алексей Севрюков(2/1280)[досье]
Алексей[досье] Реально закачанные? Да очень просто, в таблице Downloads есть поля id трека и количество скачиваний. Отдали песню на скачку, обновили таблицу Downloads и прибавили единичку к количеству. Либо вообще количество скачивания хранить в таблице треков.
спустя 1 час 49 минут [обр] Роман Чемисов(0/327)[досье]
Алексей[досье]
А у Вас как будет:
  1. у каждого альбома есть несколько фиксированных треков для скачивания;
  2. каждый пользователь может сам выбрать, что ему скачивать из альбома, но количество разрешённых для скачивания треков фиксировано?
спустя 2 минуты [обр] Роман Чемисов(0/327)[досье]
Алексей[досье]
забыл :-)
Это я просто хочу понять, что Вам надо считать. Ведь если у Вас второй вариант, то считать придётся не только общее количество скачиваний трека (для статистики), но и сколько каждый пользователь скачал треков из каждого альбома (чтобы он лишнего не закачал).
спустя 12 часов [обр] Миша Спларов(0/34)[досье]
Топикстартеру: Зачем вам таблица Downloads? Напишите всю схемы работы вашей системы? Тогда мы сможем помочь вам в реализации.
спустя 1 час 36 минут [обр] Алексей[досье]

Алексей Севрюков[досье]выбор альбома по первым букавам это хорошо, но вывалиться скажем сто наименований и?)
в плане админского интерфейса сделал наподобие gmail при аттаче файла, так как количество трэков в альбоме неизвестно, до добавляются новые поля Название трэка, описание и закачка. А как по удобнее сделать выборку альбома? самый лобовой вариант текстовое поле куда ручками вводить id альбома..но это жуть...

Роман Чемисов[досье] все пока проще. и то что вы спрашиваете будет наверное потом)

спустя 1 час 38 минут [обр] Алексей Севрюков(2/1280)[досье]

Алексей[досье]

но вывалиться скажем сто наименований

Поиск тоже никто не отменял.

лобовой вариант текстовое поле куда ручками вводить id альбома..но это жуть...

Зачем? Я же вроде достаточно популярно объяснил как это сделать. Вы выбираете один альбом и работаете с ним (меняете, удаляете или добавляете треки),id альбома передаете прямо в URL или через скрытое поле формы.

спустя 6 минут [обр] Алексей[досье]
Алексей Севрюков[досье]понятно. спасибо. не надо злиться
спустя 35 минут [обр] Алексей Севрюков(2/1280)[досье]
Алексей[досье] А никто и незлится, с чего Вы взяли?
спустя 54 минуты [обр] Алексей[досье]

Алексей Севрюков[досье]можно вопрос, с mp3 как поступать? я так понимаю есть два варианта..нарезать прьевью и их закачивать, либо закачивать целиком, где тоже два варинта:

  1. делать прьевью при аплоуде
  2. делать прьевью при запросе и кэшировать(либо кэшировать и время жизни несколько дней)

?

спустя 16 минут [обр] Роман Чемисов(0/327)[досье]
Алексей[досье]
Я бы выбрал варант 2.2.
спустя 7 минут [обр] Алексей[досье]
и даже если аплоудить превьюшки и пускай их будет штучек десять на альбом и по 400-500кб, в четыре метра выходит( это ведь по http уже не стоит заливать?
спустя 1 час 29 минут [обр] Дмитрий Шер aka sherd(0/84)[досье]
если все серьезно, то есть маза купить (или написать) ява-апплет для закачивания файлов, типа того, что есть у фотопроекта (fotoproekt.ru) в интерфейсе пользователя.
спустя 24 минуты [обр] Алексей[досье]
Дмитрий Шер aka sherd[досье]да нет. денег под это выделять ни кто не хочет(
спустя 15 минут [обр] Алексей Севрюков(2/1280)[досье]

Алексей[досье], Роман Чемисов[досье] уже подсказал Вам оптимальный вариант. Правда он связан с некоторыми трудностями, например, Вам будет необходимо найти библиотеку или утилиту которая сможет делать превьюшки. Несколько дней хранить тоже не стоит, один раз сделали, и храните "всю жизнь". Обновлять только в том случае если Вы заливаете обновленную версию mp3, например (но это будет крайне редко, если вообще будет).

Да, и еще учитывайте что большие файлы по HTTP могут и не пролезать из-за таймаута сервера, т.е. Вам придется делать очень большой таймаут (если хостер разрешит).

спустя 2 минуты [обр] Алексей Севрюков(2/1280)[досье]

Алексей[досье]

да нет. денег под это выделять ни кто не хочет(

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

спустя 48 минут [обр] Дмитрий Шер aka sherd(0/84)[досье]

Алексей[досье], я так понимаю, это такой проект для не то чтобы себя, но как минимум друзей, да?

если так, то (по мере возрастания сложности и ненадежности):
вы сами можете закачивать по фтп, и потом просто указывать в админском интерфейсе местонахождение превьюшки;
или закачивать превьюшки по http по одному;
или закачивать превьюшки сразу по много.

вот и выбирайте. критерии есть - простота(цена) реализации, простота использования пользователями, скорость работы.. вам знать ваши критерии ;)
--
Да, кстати, превьюшки mp3-шек тривиально делаются lame-ом, по-моему. Не знаю как там насчет вырезания отрезка, но mp3 в mp3 с lower bitrate делается на ура ) сам так делаю.

спустя 15 минут [обр] Алексей[досье]
Дмитрий Шер aka sherd[досье]допустим пока lame использовать не будем.
а будем любовно лично прослуживать и вырезать самые информативные кусочки и жать их.
закачивать их надо несколько сразу же.. в итоге где то может метров 4-5.
заливать их через http или можно как нить сделать и стоит ли через ftp но с web интервейсом и возможность указать сразу несколько
ну что то вроде:
<input type="file" name="file[]"><br>
<input type="file" name="file[]"><br>
спустя 37 минут [обр] Алексей Севрюков(2/1280)[досье]
Алексей[досье] Через FTP с веб-интерфейсом? Это как? Если только встроенный в браузер веб-интерфейс, но там никакой HTML вы не сделаете.
В принципе Вы можете сделать на локальной машине интерфейс, он будет получать файлы по HTTP, а потом сам соеденяться по FTP и заливать их куда нужно.
спустя 20 часов [обр] Дмитрий Шер aka sherd(0/84)[досье]
Алексей[досье], я бы по фтп заливал. и указывал в административном интерфейсе, откуда брать превьюшку.
Powered by POEM™ Engine Copyright © 2002-2005