|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
Доброго времени суток. Application Express 4.1.1.00.23. Клиент должен загрузить файл (картинка) на сервер. Сейчас используется механизм загрузки файла в поле BLOB определенной таблицы. Далее BLOB переносится в директорию на сервере Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76.
и строка таблицы содержащая BLOB удаляется, а имя сохраненного файла сохраняется в другой таблице. Таким образом, файлы в БД храниться не должны. На странице клиента вся это процедура (от загрузки в BLOB до выгрузки в директорию) зашита в процесс. НО: в процессе выполнения PROCEDURE load_blob_to_bfile (при условии больших файлов 7 -10 МБ) загрузка происходит очень долго. Что посоветуете, как правильнее организовать эту задачу? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 12:58 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
metis, Можно ли отложить перенос файлов из базы в файловую систему? Т.е. пользователь ждет только загрузки файла в табличку, а потом джоб одним махом все записи переносит в файловую систему. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 13:59 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
haXbatmetis, Можно ли отложить перенос файлов из базы в файловую систему? Т.е. пользователь ждет только загрузки файла в табличку, а потом джоб одним махом все записи переносит в файловую систему. Нет, потому как за операцией загрузки файла в таблицу следует авторизация записи и другому пользователю нужно просмотреть вложенный файл ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 14:18 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
metisЧто посоветуете, как правильнее организовать эту задачу? metisНет, потому как за операцией загрузки файла в таблицу следует авторизация записи и другому пользователю нужно просмотреть вложенный файл Можно описать всю задачу, а не только Ваше решение? А то сейчас насоветуем. Можете джобом переписывать файл из BLOB в BFILE; сущности, атрибутом которой является файл, добавьте атрибут "Статус", который джоб изменит по завершении. Соответственно, авторизация (?) пусть тоже входит в джоб, а другому пользователю записи выдаются с учётом состояния. Если не XE и хочется оставить синхронность, можете попробовать выгружать хранимой процедурой Java. Есть шанс, что окажется быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 15:09 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
metisСейчас используется механизм загрузки файла в поле BLOB определенной таблицы. Опишите как реализован механизм загрузки в kart_files сейчас metisНО: в процессе выполнения PROCEDURE load_blob_to_bfile (при условии больших файлов 7 -10 МБ) загрузка происходит очень долго. Можно подробнее, примерно, сколько у вас времени уходит на сеть, сколько на загрузку в таблицу kart_files и сколько на load_blob_to_bfile ? Укажите так же сценарий установки ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 15:36 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
SvDevОпишите как реализован механизм загрузки в kart_files сейчас FileBrowse смотрит на wwv_flow_files , а дальше процесс Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
SvDev Можно подробнее, примерно, сколько у вас времени уходит на сеть, сколько на загрузку в таблицу kart_files и сколько на load_blob_to_bfile ? Укажите так же сценарий установки На загрузку в kart_files - секунды , а вот на "побайтовый разбор" блоба в директории долговасьтенько ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 16:08 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
suPPLer Можно описать всю задачу, а не только Ваше решение? А то сейчас насоветуем. Первый Клиент должен загрузить файл (картинка) на сервер. Второй клиент просматривает загруженное изображение и если ему все нравится ставит признак "удовлетворенности" изображения. Файлы в БД храниться не должны. suPPLer Можете джобом переписывать файл из BLOB в BFILE; сущности, атрибутом которой является файл, добавьте атрибут "Статус", который джоб изменит по завершении. Соответственно, авторизация (?) пусть тоже входит в джоб, а другому пользователю записи выдаются с учётом состояния. Если не XE и хочется оставить синхронность, можете попробовать выгружать хранимой процедурой Java. Есть шанс, что окажется быстрее. Джоб не подойдет. Использую именно XE , поэтому такая галиматья с файлами. Java - тоже нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 16:12 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
metisНО: в процессе выполнения PROCEDURE load_blob_to_bfile (при условии больших файлов 7 -10 МБ) загрузка происходит очень долго. 1. Долго - это сколько? Попробовал: у меня запись блоба размером 81МБ в файл происходит за 0.9с Скорее всего время тратится на передачу файла. 2. Я бы буфер увеличил до 30К 3. А зачем картинку конвертировать из UTF-8 в 1251? Она не портится от этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 16:18 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
И самое главное, после того как выложили файл в директорию , нужно сохранить ссылку на него в таблице. Ссылки должны храниться в базе всегда. Для дальнейшего просмотра думаю использовать BFILE (?) для возможности подгрузки файлов с директории ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 16:18 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
Migelle 1. Долго - это сколько? Попробовал: у меня запись блоба размером 81МБ в файл происходит за 0.9с Скорее всего время тратится на передачу файла. 2. Я бы буфер увеличил до 30К 3. А зачем картинку конвертировать из UTF-8 в 1251? Она не портится от этого? 81МБ в файл происходит за 0.9с - это очень хорошо , у меня 7МБ за 10-15 сек. Про буфер не понял. Конвертится не картинка на название файла, т.к при сохранении русских букв в названии образуются кракозябры ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 16:21 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
metisДжоб не подойдет. Потому что?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 16:35 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
metisПро буфер не понял. Код: plaintext 1. 2.
metisКонвертится не картинка на название файла, т.к при сохранении русских букв в названии образуются кракозябры А это тогда что? Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 16:59 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
MigelleА это тогда что? а это подлежит исключению из кода ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 17:35 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
suPPLermetisДжоб не подойдет. Потому что?.. metishaXbatmetis, Можно ли отложить перенос файлов из базы в файловую систему? Т.е. пользователь ждет только загрузки файла в табличку, а потом джоб одним махом все записи переносит в файловую систему. Нет, потому как за операцией загрузки файла в таблицу следует авторизация записи и другому пользователю нужно просмотреть вложенный файл ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 17:36 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
MigellemetisПро буфер не понял. Код: plaintext 1. 2.
metisКонвертится не картинка на название файла, т.к при сохранении русских букв в названии образуются кракозябры А это тогда что? Код: plaintext 1. 2.
Понял.Спасибо,попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 17:37 |
|
Работа c Oracle директорией напрямую. Возможно ли?
|
|||
---|---|---|---|
#18+
metisНет, потому как за операцией загрузки файла в таблицу следует авторизация записи и другому пользователю нужно просмотреть вложенный файл Это не помеха сделать всё в джобе, который выполняется сразу после вставки в WWV_FLOW_FILES. Пользователь Вася успешно загрузил файл на сервер, в процессе страницы запустился джоб . В джобе процедура перекинула BLOB из WWV_FLOW_FILES в файловую систему, создала BFILE в таблице и обновила статус сущности, с которой связан файл, на "Загружен и доступен". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2013, 18:20 |
|
|
start [/forum/topic.php?fid=50&fpage=53&tid=1875842]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 336ms |
total: | 476ms |
0 / 0 |