2016-06-14 40 views
0

Angularを使用して、Laravelサーバーから受信した予約済みURLを使用して、イメージをs3バケットにアップロードしています。Angular - imageからs3にpresigned画像をアップロードしていない

ファイルが適切なコンテンツタイプで正常にアップロードされているようです。私はS3に角度アップロード後S3ファイルにPUT年代をクリックした場合、私が取得:

enter image description here

しかし、実際のファイルサイズは27.9kbです:

Object: dog-aromatherapy.jpg 

    Bucket: dderesources 
    Name: dog-aromatherapy.jpg 
    Link: This is a public link -> https://s3.amazonaws.com/dde.resources/dog-aromatherapy.jpg 
    Size: 28660 
    Last Modified: Tue Jun 14 14:51:13 GMT-400 2016 
    Owner: myusername 
    ETag: f478788943af2296223a0f45a9c50610 
    Expiry Date: None 
    Expiration Rule: N/A 

メタデータはimage/jpegとして正しいですか、つまりのサイズが28.6kbの場合、余分な~700b程度が失われていると予想しています...

enter image description here


私が見るには画像をクリックすると、それは白いminiboxを示しています

enter image description here

はそれを自分で試してみてください:https://s3.amazonaws.com/dderesources/dog-aromatherapy.jpg

角度アップロードコード

var upload_file = function (file, response) { 

    var formData = new FormData(); 

    formData.append('image', file); 

    return $http({ 
     method: 'PUT', 
     url: response.signed_request, 
     data: formData, 
     headers: { 
      'Content-Type': file.type 
     }, 
     cache: true 
    }); 
}; 

これはなぜですか?

答えて

1

期間を削除します。あなたのバケット名から、それはこのようないくつかのこと、これは問題に

DDE-資源期間とバケット名として

を解決します作ります「」あなたのコードで辞任されたURLを使用しているときにうまくいっていません。

そして、あなたの角度のコードでのステートメントの下

processData: false 
+0

を使用するには、dderesources' 'に変更し、これはそれを解決しませんでした。左側のファイルは '27.9kb 'ですが、ファイル上で' view properties'をクリックするとサイズが '28660'、つまり' 28.6kb'になります。ファイルをダウンロードして開こうとすると、「ファイルが破損しているか、またはプレビューで認識できないファイル形式を使用しています」と表示されます。 – Growler

+0

試してみてください。 –

+0

角の '$ http'は必要に応じて変更されます:http://stackoverflow.com/questions/18839524/how-to-use-https-in-angularjs – Growler

関連する問題