Я ищу библиотеку / фреймворк HTML 5 Ajax для пользователей для загрузки файлов непосредственно на Amazon S3. Цель состоит в том, чтобы избежать загрузки вложений на веб -сервер (как блокирует веб -сервер, когда он передает их на Amazon). Насколько я понимаю, это должно быть возможно, используя Xdomainrequest , но я не могу понять, как. < /p>
Я запускаю Ruby-On-Rails и хотел назначить загруженный файл временное имя (с помощью UUID), которое будет размещено обратно на веб-сервер, чтобы впоследствии был переименован и интегрирован с помощью PaperClip. < /p>
Есть идеи? Это может справиться с чем -то, что может справиться с jquery? Flash не вариант для этого проекта. Спасибо! < /P>
edit: < /strong> < /p>
Мне удалось получить базовый пост, но у меня все еще есть проблемы. Я не совсем уверен, какие заголовки требуются, или как кодировать необходимые параметры Amazon в запросе (могу я поместить их в заголовок запроса?). Вот мой прогресс до сих пор: < /p>
const XMLHTTPFactories = [
function () { return new XDomainRequest(); },
function () { return new XMLHttpRequest(); },
function () { return new ActiveXObject("Msxml2.XMLHTTP"); },
function () { return new ActiveXObject("Msxml3.XMLHTTP"); },
function () { return new ActiveXObject("Microsoft.XMLHTTP"); },
];
var xhr = null;
for (var i = 0; i < XMLHttpFactories.length; i++) {
try { xhr = XMLHttpFactories(); break; } catch (exception) { continue; }
}
$(this).change(function () {
for (var i = 0; i < this.files.length; i++) {
var file = this.files;
xhr.open(settings.method, settings.url, true);
xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.setRequestHeader("Access-Control-Allow-Origin", "*")
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.setRequestHeader("X-File-Name", file.fileName);
xhr.setRequestHeader("X-File-Size", file.fileSize);
xhr.send(file);
}
< /code>
edit: < /strong> < /p>
После дальнейших обновлений мне удалось получить следующую ошибку: < /p>
xmlhttprequest не может загрузить
htttp:/buckt.comt.com.comt.com.comt.mlhtprequest
htttp:/buckt.com.com.s.mlhtprequest. /> Происхождение http://local.app
не разрешено
Access-control-allow-Origin. < /P>
< /blockquote>
Я загрузил Crossdomain.xml < /code> файл, который позволяет домену домена wildcard (*). Не уверен, как продолжить ... < /p>
edit: < /strong> < /p>
После большего расследования я начинаю думать, что пост JavaScript может быть невозможным для S3. Будет ли я обязан публиковать экземпляр EC2, прежде чем сделать перевод? Я мог бы получить микро -экземпляр, но я бы предпочел перейти прямо в S3, если это возможно! Спасибо! < /P>
edit: < /strong> < /p>
Я разместил вопрос на форумах Amazon и не получил никаких отзывов. Для перекрестных ссылок можно найти здесь: https://forums.aws.amazon.com/message.j ... 650#206650.
Подробнее здесь: https://stackoverflow.com/questions/422 ... t-uploader