Sovled! Спасибо @Michael - sqlbot. Используя пользовательскую политику, я могу вернуть любые размеры изображения, которые я хочу, включая исходный размер, используя один URL-адрес со знаком. Если у кого-то еще есть такая проблема, вот как я это сделал:
Мой php-код для генерации подписанного URL:
public static function signedImageUrl($resource)
{
// Build Url
$url = self::CLOUDFRONT_BASE . ltrim($resource, '/') . '?w=*&h=*';
// Create a CloudFront Client
$client = new CloudFrontClient([
'version' => '2014-11-06',
'region' => 'us-east-2'
]);
// Set up parameter values for the resource
$expires = time() + 300;
// Policy
$policy = '{
"Statement": [
{
"Resource":"' . $url . '",
"Condition":{
"DateLessThan":{"AWS:EpochTime":' . $expires . '}
}
}
]
}';
// Create a signed URL for the resource using the canned policy
$signedUrlCannedPolicy = $client->getSignedUrl([
'url' => $url,
'policy' => $policy,
'private_key' => env('AWS_CLOUDFRONT_PRIVATE_KEY_PATH'),
'key_pair_id' => env('AWS_CLOUDFRONT_KEY_PAIR_ID')
]);
return $signedUrlCannedPolicy;
}
Где CLOUDFRONT_BASE - это домен .cloudfront.net / для моего облачного фронта. дистрибутив, а $ resource - это имя файла (например, my_profile_image.png)
На этом этапе я получаю свое подписанное изображение и затем могу изменить параметры запроса w и h на клиенте в соответствии с содержанием моего сердца. Моя лямбда-функция запускается по событию Cloudfront ViewerRequest и будет указывать Cloudfront загружать либо изображение с указанными размерами, либо загружать исходное изображение, если w и h оба *.
Я не видел ни одного хорошего плагина, который бы удовлетворял вашим требованиям.
В качестве альтернативы вы можете поместить jar сервера jetty к вашему пути к классу (я использую jetty-6.1.5.jar и jetty-util-6.1.5.jar) и напишите класс, подобный следующему.
package net.eduportal.jetty;
import javax.servlet.ServletContext;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.security.UserRealm;
import org.mortbay.jetty.webapp.WebAppContext;
public class JettyRunner {
public static final int PORT = 8080;
public static final String BASE_URL = "http://localhost:" + PORT;
private static final JettyRunner _instance = new JettyRunner();
public static JettyRunner getInstance() {
return _instance;
}
// ///////////////////////////////////////////////////////////////
// Singleton
// /////////////
private Server server = null;
private WebAppContext wac = null;
private JettyRunner() {
}
public interface WebApplicationInitializer {
public void init(WebAppContext wac);
}
public ServletContext getServletContext() {
return wac.getServletContext();
}
public void start() throws Exception {
if (server == null) {
server = new Server(PORT);
server.setStopAtShutdown(true);
wac = new WebAppContext();
wac.setContextPath("/test");
wac.setResourceBase("war");
wac.setClassLoader(this.getClass().getClassLoader());
server.addHandler(wac);
server.start();
}
}
public void stop() throws Exception {
if (server != null) {
server.stop();
server = null;
}
}
public static void main(String argv[]) throws Exception {
JettyRunner.getInstance().start();
}
}
Приведенный выше код предполагает, что есть папка с именем " war »в пути к классам, содержащему те же папки WEB-INF / *. Когда вы запустите код из eclipse, сервер запустится, и вы сможете просмотреть jsps, перейдя по адресу localhost: 8080 / test / *
Вам не нужно вообще перестраивать, чтобы увидеть результаты
Последняя корпоративная версия eclipse фактически выполняет горячую замену кода JSP. Я добавляю веб-проект в Tomcat (или Glassfish или JBoss ...), и любые изменения, которые я делаю в JSP, отражаются после обновления окна моего браузера. Очевидно, что когда я меняю файл Java, мне нужно перезапустить Tomcat, но это занимает максимум 2 секунды.
чтобы увидеть результаты, нужно вообще перестроить его.Последняя версия Eclipse для Enterprise, в действительности, выполняет горячую замену кода JSP. Я добавляю веб-проект в Tomcat (или Glassfish или JBoss ...), и любые изменения, которые я делаю в JSP, отражаются после обновления окна моего браузера. Очевидно, что когда я меняю файл Java, мне нужно перезапустить Tomcat, но это занимает максимум 2 секунды.
чтобы увидеть результаты, нужно вообще перестроить его.Последняя версия Eclipse для Enterprise, в действительности, выполняет горячую замену кода JSP. Я добавляю веб-проект в Tomcat (или Glassfish или JBoss ...), и любые изменения, которые я делаю в JSP, отражаются после обновления окна моего браузера. Очевидно, что когда я меняю файл Java, мне нужно перезапустить Tomcat, но это занимает максимум 2 секунды.
Существует Oracle Workshop для WebLogic 10g R3 , который дает вам наиболее близкую вещь к редактированию WYSIWYG JSP , Несмотря на то, что он исходит от Oracle / BEA, он работает со многими серверами приложений, а не только с WebLogic. Это лучший инструмент, который я знаю для JSP, и он бесплатный. Я не говорю о тегах Spring, но их можно настроить для представления тегов во время разработки. Я не уверен, что они поддерживают Eclipse 3.4.
Также есть JBoss Developer Studio , в которой есть хорошие визуальные инструменты JSP.
JBoss Tools ( http://jboss.org/tools ) имеет визуальный редактор страниц который поддерживает JSP, HTML и даже JSF.
Если тег не поддерживается, вы можете щелкнуть по нему правой кнопкой мыши и добавить шаблон для него, ИЛИ вы можете расширить поддерживаемые теги, применяя точки расширения.
Примеры пользователей, расширяющих набор поддерживаемых тегов: http://relation.to/Bloggers/HowToCreateAVisualDocBookEditorIn10Minutes и http://planetjbpm.wordpress.com/2009/02/25/xforms-editor-with-jboss- vpe-and-some-jbpm /
MyEclipse предоставляет этот плагин:
http://www.myeclipseide.com/module -htmlpages-display-pid-11.html
Относительно того, будет ли это тег Spring, это другой вопрос ...