2016-05-20 5 views
0

Ich verwende den S3-Adapter, um Bilder in meinem S3-Bucket zu speichern. Mein Client-Code ist:Parse Server S3 Adapter speichert Bild als .txt

var saveFileToParse = function(imageData) { 
    var parseFile = new Parse.File(Parse.User.current().id + " Image", { 
     base64: imageData 
    }); 
    $ionicLoading.show(); 
    parseFile.save().then(function(response) { 

     if (angular.isNumber($scope.activeExercise.images[0])) { 
      $scope.activeExercise.images = []; 
     } 

     var imageUrl = response._url; 
     $scope.activeExercise.images.push(imageUrl); 

     $scope.$apply(); 
     $scope.customImage = true; 

     $ionicLoading.hide(); 

    }).then(function(imageUrl) { 

      var file = new Parse.Object("Files"); 
      file.set("file", parseFile); 

      file.save().then(function(response) { 

       $ionicLoading.hide(); 

      }); 

     }, 
     function(error) { 
      $ionicLoading.hide(); 

      errorFactory.checkError(error); 

     }); 
}; 

Die Datei gespeichert wird, jedoch als .txt Datei gespeichert wird, erwarte ich, weil die Basis 64, aber dies nie ein Problem war auf parse.com. Kann ich das explizit als .jpg speichern?

EDIT:

mir den Code verwendet, und das gibt einen anderen Dateinamen und zeigt, wie ein Bild, S3. Wenn es heruntergeladen wird, hat es jedoch eine TXT-Dateierweiterung. Ich habe sogar meine speichern Befehl umfassen den MIME-Typ var parseFile = new Parse.File(name, file, "image/jpeg");

S3 example

+0

Oh year, Sie verwenden Pars-API und hoffen, dass es gegen AWS S3 arbeitet, ohne Zieländerungen anzugeben? S3 ist nur ein GIGO Store, wenn Ihre API BASE64 sendet, wird sie nicht transformiert. – mootmoot

+0

In der Tat! Es gibt keine gegenteilige Dokumentation! – Taylorsuk

+0

Ich sehe hier kein Problem. Es sieht so aus, als müssten Sie '3 wechseln. Ein Dateiobjekt, das mit einem Dateiupload-Steuerelement ausgewählt wurde. https://parse.com/docs/js/api/classes/Parse.File.html – mootmoot

Antwort

0

Ehrlich geändert, die Sie gerade zu read the documentation throughly benötigen. Die Antwort ist bereits da, übergeben Sie einfach das Dateiobjekt.

var fileUploadControl = $("#profilePhotoFileUpload")[0]; 
if (fileUploadControl.files.length > 0) { 
    var file = fileUploadControl.files[0]; 
    var name = "photo.jpg"; 
    var parseFile = new Parse.File(name, file); 
    parseFile.save().then(function() { 
     // The file has been saved to Parse. 
    }, function (error) { 
     // The file either could not be read, or could not be saved to Parse. 
    }); 
} 
0

Dieses Problem wurde dadurch verursacht, dass der alte parse.com-Server% 20 automatisch anwendete, wenn in der Datei-URL ein Leerzeichen enthalten war.

Entfernen des Speicherplatzes hat es funktioniert.