Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when Save file in Amazon S3 #976

Closed
ckarmy opened this issue Mar 11, 2016 · 18 comments
Closed

Error when Save file in Amazon S3 #976

ckarmy opened this issue Mar 11, 2016 · 18 comments

Comments

@ckarmy
Copy link

ckarmy commented Mar 11, 2016

Hi,

I'm trying to save a image in my S3 service but I get an error... The files are saved in the same way that I save regular files in parse?

The code to save my image is:

var parseFile = new Parse.File(file.name, file);
'parseFile.save().then(function() {
debug_log("Saved");
var currentUser = Parse.User.current();
currentUser.set("image", parseFile);
currentUser.save();
}, function(error) {
debug_log("ERROR: " + JSON.stringify(error));
// I get this error
});

And my index.js looks like:

var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var S3Adapter = require('parse-server').S3Adapter;

var databaseUri = 'xxxxxx';

if (!databaseUri) {
console.log('DATABASE_URI not specified, falling back to localhost.');
}

var api = new ParseServer({
databaseURI: 'xxxxxx',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: 'xxxxx',
masterKey: 'xxxxxx', //Add your master key here. Keep it secret!
serverURL: 'http://localhost:1338/parse', // Don't forget to change to https if needed
filesAdapter: new S3Adapter(
"xxxx",
"xxxxx",
{bucket: "xxxx", directAccess: true}
),
fileKey: 'xxxxx'
});

var app = express();

var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);

app.get('/', function(req, res) {
res.status(200).send('I dream of being a web site.');
});

var port = 1338;
app.listen(port, function() {
console.log('parse-server-example running on port ' + port + '.');
});

@flovilmart
Copy link
Contributor

What is the error?

@ckarmy
Copy link
Author

ckarmy commented Mar 11, 2016

@flovilmart I get a empty message when I debug JSON.stringify(error)

@flovilmart
Copy link
Contributor

What is you file variable? a buffer? Is that in node? JS SDK?

@ckarmy
Copy link
Author

ckarmy commented Mar 11, 2016

@flovilmart the file is a image that I take with my phone. This code work fine with oficial Parse storage. I don't know if I need to do something more to config my S3Adapter... I follow this instructions: https://github.com/ParsePlatform/parse-server/wiki/Storing-Files-in-AWS-S3

@flovilmart
Copy link
Contributor

Can you start your server with VERBOSE=1 so I can get the logs?

@ckarmy
Copy link
Author

ckarmy commented Mar 11, 2016

@flovilmart Sorry I'm a beginner in this. How I start the server with VERBOSE=1? with npm run start VERBOSE=1? And how I see the log?

Thanks!

@flovilmart
Copy link
Contributor

@ckarmy the opposite : VERBOSE=1 npm start

@ckarmy
Copy link
Author

ckarmy commented Mar 11, 2016

@flovilmart Thanks! Now I can see all the debug but when I try to save the file I don't get any message from the server. Because the error happen in this part:
_
var parseFile = new Parse.File("file.name", file);
parseFile.save().then(function() {

    }, function(error) {
                //this error
    });_

I don't know what to do :(

@flovilmart
Copy link
Contributor

when you call parseFile.save() this should send a request to the server. If you don't see a request coming out, that means that this is a client SDK problem.

@ckarmy
Copy link
Author

ckarmy commented Mar 11, 2016

@flovilmart I think is a problem with the parse-server configuration. I try to upload a image with the dashboard and don't work. And I don't get any log from the server!

I try with this button:
screen shot 2016-03-11 at 15 47 10

What can be?

@flovilmart
Copy link
Contributor

Looks a lot like: #876, parse-community/parse-dashboard#90

@ckarmy
Copy link
Author

ckarmy commented Mar 11, 2016

Thanks! @flovilmart! I solve the problem with the dashboard but the problem with my app continues 😔
I don't know what can be! If I remove the S3Adapter and manage files with Parse works! But not with my S3 bucket from javascript!

@flovilmart
Copy link
Contributor

how did you solve the problem with the dashboard?

@ckarmy
Copy link
Author

ckarmy commented Mar 11, 2016

@flovilmart I update my parse-server and parse-server-dashboard repository.
Any idea how can I solve the problem?

@flovilmart
Copy link
Contributor

Not really, as we don,t see the requests coming into parse-server, it sure seems to be a client related problem IMHO, maybe someone else's got an idea. @peterdotjs ?

@peterdotjs
Copy link
Contributor

@ckarmy could you take a screenshot of the network requests when you are attempting to upload?

@ckarmy
Copy link
Author

ckarmy commented Mar 12, 2016

@peterdotjs I was trying uploading the image directly but does not receive any response of the server. Now I try uploading the image with Base64 encoding and I get this:
screen shot 2016-03-11 at 22 12 14

The encode image is:

data:image/jpeg;base64,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

@flovilmart
Copy link
Contributor

your base64 string should not have data:image/jpeg;base64, just the string. I believe you're capturing that from and somewhere as HTML/cordova requires this information to properly render that image.

@ckarmy ckarmy closed this as completed Mar 13, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants