CFDIRECTORY заблокирован хостинг-провайдером. Любые альтернативы?

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

К сожалению, тег cfdirectory (и некоторые другие) заблокирован хостинг-провайдером. По сути, мне нужно имитировать функциональность этого фрагмента кода без использования cfdirectory:

<cfdirectory action="list" directory="\\SERVERABC\FILEDIR"   name="myDirectory"> 
<cfloop query="mydirectory">
<cfoutput> 
     <cfif mydirectory.dateLastModified EQ DateFormat(Now(),'mm/dd/yy')>
        <!--- ..display link to file for user to download --->
     </cfif>
</cfoutput>
</cfloop>

Доступна функция FileExists(). Но пользователь ColdFusion по умолчанию не будет иметь доступа ко всем сетевым расположениям, которые могут быть доступны фактическому пользователю в самом приложении.


person user1178394    schedule 06.03.2013    source источник
comment
Честно говоря, если у них не реализована песочница и нужно отключить CFDirectory, вам, вероятно, следует найти другого хостинг-провайдера. Возможно, вы сможете обойти это, используя компоненты Java, но они, вероятно, также блокируют CreateObject (java)? Трудно дать вам альтернативу, не зная полной шкалы отключенных тегов.   -  person BKK    schedule 06.03.2013
comment
к сожалению, я не могу использовать другого хостинг-провайдера. Я работаю в очень крупной компании, которая использует внутреннюю группу хостинга, поэтому мы оставляем на их усмотрение, какие теги блокируются, а какие нет. Я пытаюсь найти полный список этих тегов.   -  person user1178394    schedule 06.03.2013
comment
Пробовал: createObject(java, java.io.File) --- Результат: доступ запрещен (чтение java.io.FilePermission \\SERVERABC\FILEDIR)   -  person user1178394    schedule 06.03.2013
comment
Это вроде там, но у вас есть cfexecute? вы можете попробовать каталог C:\ › results.txt и попытаться прочитать и проанализировать результаты.txt, или вы могли бы написать .net dll, который вы могли бы вызвать, чтобы вернуть необходимую информацию в CF?   -  person steve    schedule 06.03.2013
comment
Только что попробовал. Cfexceute тоже заблокирован :( Хорошая мысль! :)   -  person user1178394    schedule 06.03.2013
comment
Можно ли хранить эту информацию в базе данных и обновлять ее каждый раз, когда в файл вносятся изменения?   -  person Kevin B    schedule 06.03.2013
comment
поддерживает ли ваш сервер другие языки? php или asp/.net и т. д., которые могут быть не заблокированы и могут передавать вам необходимую информацию через json, xml или что-то еще.   -  person steve    schedule 06.03.2013
comment
Я работаю в очень крупной компании, которая использует внутреннюю группу хостинга... — затем скажите тому, кому вы подчиняетесь, что (1) у вас нет инструментов, необходимых для выполнения вашей работы и (2) группа внутреннего хостинга, скорее всего, не знает, что делает.   -  person Peter Boughton    schedule 06.03.2013
comment
Пока же никто не упомянул DirectoryList — его тоже заблокировали? (Вы также не сказали, какая это версия CF.)   -  person Peter Boughton    schedule 06.03.2013
comment
О, и это сравнение: mydirectory.dateLastModified EQ DateFormat(Now(),'mm/dd/yy'), вероятно, должно быть DateCompare(mydirectory.dateLastModified,Now(),'d')?   -  person Peter Boughton    schedule 06.03.2013
comment
Если все заблокировано, единственный другой способ - сохранить список элементов в каталоге в коде или БД.   -  person Sharondio    schedule 06.03.2013
comment
Если ваша компания не настроит для вас правильную безопасность, попросите их настроить учетную запись FTP для этой папки или учетную запись FTP и виртуальный каталог для этой папки. Вы можете использовать CFFTP для извлечения списка каталогов, а также для выполнения других простых операций с папками/файлами. Это может занять немного больше времени, но это альтернатива, к которой они должны быть готовы.   -  person steve    schedule 07.03.2013
comment
Coldfusion 10 — это версия. DirectoryList также находится в заблокированном списке тегов.   -  person user1178394    schedule 07.03.2013
comment
Итак, ОБНОВЛЕНИЕ по этому поводу... Мне удалось разблокировать все теги для моего приложения! Так что теперь у меня есть полный доступ :) Теперь еще одно препятствие. Пользователь, назначенный пулу приложений в IIS, является локальной встроенной учетной записью... и, следовательно, не имеет доступа к каким-либо сетевым ресурсам (только к папкам в фактических каталогах на сервере, где находится код приложения). Поэтому мне придется заставить их создать созданную учетную запись службы и предоставить разрешения на доступ к сетевому ресурсу этой учетной записи, а затем назначить ее для запуска пула приложений для сайта. Но эй, надеюсь, это работает :)   -  person user1178394    schedule 08.03.2013


Ответы (1)


Вам нужно попросить своего хоста предоставить вам песочницу безопасности, чтобы вы могли использовать эти теги. Единственная причина, по которой они не могут этого сделать, заключается в том, что они используют CF Standard Edition, а не Enterprise. Если это так, то вам не повезло, так как все файловые теги ввода-вывода будут недоступны. Ни один профессиональный хост CF не использует стандартную версию.

person snake    schedule 06.03.2013