

#1
Отправлено 17 Сентябрь 2012 - 06:51
#2
Отправлено 21 Сентябрь 2012 - 13:03
#3
Отправлено 21 Сентябрь 2012 - 15:40
#4
Отправлено 21 Сентябрь 2012 - 16:48
И ещё вопрос к разработчикам если изменить код в include/functions1.php относящийся к сохранению и открытию файлов, нужно ли будет менять код который отвечает за аттачи к e-mail рассылкам. Ваши рекомендации? Хочеться сделать так чтобы в дудующих ревизиях эта функция доступна всем, т.к. проблемма хранения больших обёмов файлов рано или поздно возникнет у всех. Вариант иметь свой сервер для многих не приемлем, т.к. не у всех есть colocation в дата центре. А интернет в офисе не достаточно надежен для серьёзных проектов, при условии что предприятие имеет филиальную структуру.
#5
Отправлено 21 Сентябрь 2012 - 17:07
#6
Отправлено 21 Сентябрь 2012 - 18:27
#7
Отправлено 22 Сентябрь 2012 - 15:37
Как зарегистрироваться на Amazon S3 неплохая статья тут: http://vadim.com.ua/...achalo-rabotyi/
Вы советовали не менять фалов КБ, по этому подумал, что файл config.php идеальная точка соприкосновения настройки «хранение файлов в Amazon S3».
Для взаимодействия с S3 решил использовать php class “S3.php” копируем его в папку «include» исходник и документация тут https://github.com/t...on-s3-php-class
В config.php добавляем строчки ------------------------------------
if (!class_exists('S3')) require_once 'S3.php'; // Вызов класса
// AWS access info Amazon S3 слкдующая строчка должна быть явно не в этом файле, по тому как заставляет авторизоваться каждый раз при обновлении страницы. Здесь в будующем нужно передавать только значение переменных а авторизацию непосредственно при отправке файла.
S3::setAuth("xxxxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
// Другие параметры они точно остаются здесь
$bucket = 'xxxxxxxxxx'; // корзина для хранения файлов
$path = ''; // Can be empty '' // путь по умолчанию пример: $path = 'myfiles/' или пустой будет сохранять в корень корзины.
$lifetime = 3600; // Period for which the parameters are valid
$maxFileSize = (1024 * 1024 * 50); // 50 MB
---------------------------------------------------------------------------
Вот всё что я смог придумать… Буду стараться всё подробно описывать, так как думаю важно сделать эту надстройку удобной для всех. Очень жду ваших рекомендаций и поправок. А самое главное я ещё не понял как можно позвать этот класс из «вычислений» в КБ есть мысли? Это вообще возможно? Хотя бы в двух словах принцип как это правильно сделать. Думаю это будет поле типа «файл» нужно перехватывать путь к уже сохранненному файлу и грузить его в S3 и удалять из базы или какие идеи?
Прикрепленные файлы
Сообщение отредактировал Андрей Гуляев: 23 Сентябрь 2012 - 00:37
#8
Отправлено 24 Сентябрь 2012 - 03:33
- В cb/include/config.php добавляем строчки ------------------------------------
require_once 'amazons3.php';
$config["awsAccessKey"] = "AaaaaaaaaaaaaaaA";
$config["awsSecretKey"] = "IxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxP";
2. Копируем файл cb/include/amazons3.php

3. И не забываем скопировать файл класса S3.PHP в cb/include/S3.php
4. Создаем в Клиентской Базе «Поле» тип « Текст» и ставил галочку гиперссылка. Называем к примеру “Cloud”
5. Создаем вычисление или доп действие кому как удобно.
$line['Cloud'] = amazon(get_file_path(1186, $ID, $line['Прикрепить файл']),$line['Прикрепить файл'],'bukket-cbfiles');
Комментарии к вычислению
$line['Cloud'] – текстовое поле в которое пишем ссылку
$line['Прикрепить файл'] –Это поле типа файл о туда воруем всю информацию где лежит файл.
'bukket-cbfiles' – Это уникально имея корзины если её нет создается.
Резюме, грузит файлы со страшной скорость, по крайней мере у меня на хостинге, доступ к файлам такой же быстрый. Впечатляет.
В прицепе я получил то что хотел, мне просто нужен архив всех моих работ в надежном месте, я нисколько из не прячу по этому они в публичном доступе.
Разработчикам: Только осталась маленькая проблемка, если файлов в поле несколько? Каким образом получать их пути? И как мне всё бы допилить для того чтобы выгружались и остальные файлы? Думаю что я достиг предела знаний, это первый мой скрипт за всю жизнь. Я всё же не программист, а звукорежиссер. Помогите плиз кто чем может в доработке скрипта. Всем кому достаточно выгрузки в облако одного файла из ячейки, скрипт могут уже использовать.
Прикрепленные файлы
Сообщение отредактировал Андрей Гуляев: 24 Сентябрь 2012 - 03:37
#9
Отправлено 24 Сентябрь 2012 - 04:12
#10
Отправлено 24 Сентябрь 2012 - 10:00
jazvenko (21 Сентябрь 2012 - 18:27) писал:
#11
Отправлено 24 Сентябрь 2012 - 10:49
CbCoder (24 Сентябрь 2012 - 10:00) писал:
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#12
Отправлено 24 Сентябрь 2012 - 10:54
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#13
Отправлено 24 Сентябрь 2012 - 10:58
andibrag (24 Сентябрь 2012 - 10:49) писал:
#14
Отправлено 24 Сентябрь 2012 - 11:12
#15
Отправлено 24 Сентябрь 2012 - 11:23
Цитата
$files = explode("\r\n", $line['Прикрепить файл']); // разбиваем список файлов в массив foreach ($files as $file) // цикл по полученному массиву { $path = get_file_path(1186, $ID, $file); // получаем путь к текущему файлу // ... здесь ваши операции с текущим файлом/путем }
#16
Отправлено 24 Сентябрь 2012 - 12:08
1. Создаете файл include/functions_custom.php. В нем вы можете указывать ваши функции для работы с программой. Данный файл инклудиться до файла functions1.php.
Для того чтобы данный файл являлся частью конфигурации добавляем его в "Cписок внешних файлов". Там же появляется возможность редактировать его.
2. В данном файле вы можете переопределить функции работы с файлами, такие как: get_file_path и т.п.
Это позволит подменить механизм опеределния пути к файлам в программе.
Внимание! Программа подразумевает работу только с локальными файлами, и содержит блоки подобные этому:
$new_name=get_file_path($f_info['field_id'], $line_id, $f_info['name']);
create_data_file_dirs($f_info['field_id'], $line_id, $f_info['name']);
copy($f_info['temp_name'],$new_name);
В будущих версиях данное ограничение будет убрано, работа с файлами будет производиться только через функции, которые можно будет переопределить.
3. Для того чтобы также полноценно поддерживать загрузки файлов из программы в файле functions_custom.php, вам необходимо написать функцию cust_open_file(). У функции нет параметров. Все параметры получаете самостоятельно с помощью $_REQUEST.
Итак на текущий момент, для того чтобы сделать полноценную интеграцию с амазон диском необходимо:
1. Хостинг vps. Монтируете диск амазона к себе на виртуальную машину используя s3fs. Таким образом скрипты, которые работали с файлами на диске, не заметят подмены.
2. Если необходимо меняте функцию get_file_path
3. Пишете свою cust_open_file(). Которая будет делать header("Location: ..."); На S3 амазона.
#17
Отправлено 24 Сентябрь 2012 - 13:35
CbCoder (24 Сентябрь 2012 - 11:23) писал:
$files = explode("\r\n", $line['Прикрепить файл']); // разбиваем список файлов в массив foreach ($files as $file) // цикл по полученному массиву { $path = get_file_path(1186, $ID, $file); // получаем путь к текущему файлу // ... здесь ваши операции с текущим файлом/путем }
#18
Отправлено 24 Сентябрь 2012 - 13:45
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных