Создание Amazon S3 Bucket с использованием jQuery и REST - PullRequest
1 голос
/ 15 августа 2011

Я хочу попробовать и сделать несколько вещей с использованием jQuery и Amazons S3 API через REST. Моя ключевая проблема заключается в том, что я недостаточно хорошо знаком с REST (или не так хорошо, как я думал, что знаю), чтобы знать, будет ли этот подход работать удаленно. Я без конца пытался найти какой-то лакомый кусочек примера и оказался бесплодным, может быть, я искал неправильные вещи, которых я не знаю, но в качестве последнего рывка я решил, что найду свое новое любимое место, здесь. .

Что мне нужно сделать, это отправить. ЗАДАТЬ запрос к API для создания корзины. Основываясь на документах API S3, я придумал

var AWSAccessKeyId = "";
var AWSSecretAccessKey = "";
var AWSDomain = ".s3.amazonaws.com";

function createNewBucket(bucketName)
{
    var bucketString = 'HTTP/1.1\n';
    bucketString += bucketName + AWSDomain + '\n';
    bucketString += 'Content-Length: 0 \n';
    bucketString += 'Date: Wed, 01 Mar  2009 12:00:00 GMT \n';
    bucketString += 'Authorization: AWS ' +  sha1_string;

    $.ajax({
        url: bucketName + AWSDomain,
        type: 'PUT',
        data: bucketString,
        success: function(data) 
        {

        },
        error: ''
    });
}

хотя концепция не завершена с вышеупомянутым, я только начинаю ее, и я начал сомневаться, сработала ли вообще эта идея подхода ... И будет ли она работать с вышеизложенным или каким-либо способом, представленным здесь за помощью, как бы я работал с ответом, чтобы узнать, был ли он успешным или нет? Я знаю, что если я смогу прибить этот кусок, то смогу справиться с большей частью оставшихся проблем. Это просто заняться первым горбом и понять, правильно ли я поступил. Стоит также упомянуть, что передо мной стояла задача сделать этот стиль в стиле javascript с помощью или без помощи такой библиотеки, как jquery. Я не могу использовать PHP или тому подобное в этой концепции. Так что если кто-нибудь может бросить мне кость, я был бы очень признателен.

В дополнение к этому, кто-нибудь знает, есть ли способ на самом деле протестировать что-то вроде этого, не имея на самом деле учетной записи S3, потому что я не могу позволить себе заплатить за учетную запись только ради тестирования, не говоря уже о каких-либо другая причина.

1 Ответ

3 голосов
/ 15 августа 2011

Во-первых, у меня возникает ощущение, что вы новичок в использовании клиентских веб-сервисов. Часто лучше начать с чего-то простого.

Если у меня есть ресурс, который возвращает строку ... скажем test.html -> «Hello World!» И URL этого веб-сервиса: some-realy-long-id.s3.amazonaws.com тогда имеем следующее:

$.ajax({
    url:'some-realy-long-id.s3.amazonaws.com/test.html',
    type: 'PUT',
    data: {
        'myKey':'myValue'
    },
    success: function(data) {

        //alert dialog containing "Hello World!"
        alert(data);
    },
    error: ''
});

Вы должны помнить, что запросы от браузера следуют той же политике происхождения, поэтому, если вы не планируете использовать JSOP или какой-либо другой междоменный взлом, у вас возникнут проблемы.

p.s. Еще один маленький совет - использовать правые скобки в Javascript, так как он выполняет вставку точек с запятой (что укусит вас, если вы вернете объектный литерал).

О, да, и многие старые браузеры не поддерживают 'PUT', что вам может потребоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...