Upload Image Directly From Browser Using AngularJS Amazon S3 -


i trying upload images browser amazon s3 directly, getting error of aws not being defined:

   public/modules/users/controllers/settings.client.controller.js  16 |      var bucket = new aws.s3({                              ^ 'aws' not defined.  18 |          credentials: new aws.credentials($scope.creds.access_key, $scope.creds.secret_key)                                 ^ 'aws' not defined. 

below code:

'use strict';      angular.module('users').controller('settingscontroller', ['$scope', '$http', '$location', 'users', 'authentication', function($scope, $http, $location, users, authentication) {     $scope.user = authentication.user;          $scope.profpic = '';         $scope.creds = {             bucket: 'bucket_name',             access_key: '',             secret_key: ''         };          $scope.upload = function() {   // configure s3 object    var bucket = new aws.s3({      region : 'us-east-1',     credentials: new aws.credentials($scope.creds.access_key, $scope.creds.secret_key)   });    if($scope.file) {     var params = { bucket: $scope.creds.bucket, key: $scope.file.name, contenttype: $scope.file.type, body: $scope.file, serversideencryption: 'aes256' };      bucket.putobject(params, function(err, data) {         if(err) {         // there error s3 config         alert(err.message);         return false;     }     else {         // success!         alert('upload done');     } })     .on('httpuploadprogress',function(progress) {           // log progress information           console.log(math.round(progress.loaded / progress.total * 100) + '% done');       });   }   else {     // no file selected     alert('no file selected'); } };      // if user not signed in redirect home     if (!$scope.user) $location.path('/');      // check if there additional accounts      $scope.hasconnectedadditionalsocialaccounts = function(provider) {         (var in $scope.user.additionalprovidersdata) {             return true;         }          return false;     };      // check if provider in use current user     $scope.isconnectedsocialaccount = function(provider) {         return $scope.user.provider === provider || ($scope.user.additionalprovidersdata && $scope.user.additionalprovidersdata[provider]);     };      // remove user social account     $scope.removeusersocialaccount = function(provider) {         $scope.success = $scope.error = null;          $http.delete('/users/accounts', {             params: {                 provider: provider             }         }).success(function(response) {             // if successful show success message , clear form             $scope.success = true;             $scope.user = authentication.user = response;         }).error(function(response) {             $scope.error = response.message;         });     };      // update user profile     $scope.updateuserprofile = function(isvalid) {         if (isvalid) {             $scope.success = $scope.error = null;             var user = new users($scope.user);              user.$update(function(response) {                 $scope.success = true;                 authentication.user = response;             }, function(response) {                 $scope.error = response.data.message;             });         } else {             $scope.submitted = true;         }     };      // change user password     $scope.changeuserpassword = function() {         $scope.success = $scope.error = null;          $http.post('/users/password', $scope.passworddetails).success(function(response) {             // if successful show success message , clear form             $scope.success = true;             $scope.passworddetails = null;         }).error(function(response) {             $scope.error = response.message;         });     }; }     ])     .directive('fileread', [function(){         return {             scope: {                 fileread: '='             },             link: function(scope, element, attributes) {                 element.bind('change', function(changeevent) {                     var reader = new filereader();                     reader.onload = function(loadevent) {                         scope.$apply(function() {                     scope.fileread = loadevent.target.result;                         });                     };                     reader.readasdataurl(changeevent.target.files[0]);                 });             }          };     }]); 

not sure th eproblem is, first time using angular & dealing wi/ s3.

are sure added aws script.

from looking @ this: https://github.com/aws/aws-sdk-js

i believe may have forgot in html file:

<head>     ....     <script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.17.min.js"></script>     .... </head> 

or if stored locally:

<head>     ....     <script src="path/to/file/aws-sdk-2.1.17.min.js"></script>     .... </head> 

or similar

if using aws in backend & node server you'll need use require (however looking @ code looks doing in frontend):

var aws = require('aws-sdk'); 

http://docs.aws.amazon.com/awsjavascriptsdk/guide/node-intro.html


Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

gradle error "Cannot convert the provided notation to a File or URI" -

python - NameError: name 'subprocess' is not defined -