2017-09-14 27 views
0

)Amazon S3バケットにファイルを作成して保存できる個人用Webサイトを作成しています。AWS S3バケットにフォームで作成されたファイルをアップロードする(

設定は次のとおりです。私は、ファイル名のテキスト入力とファイルの本文のテキストエリアを持つフォームを持っています。

アイデア:ファイル名と拡張子としてファイルを保存できるようにしてください(ファイル名が 'index.html'の場合、バケットにhtmlオブジェクトとして保存されます)。これは、ファイルの本文の内容としてテキストエリアに入力された内容を保存します。

エラー: 1)POST Herokuの-URL 500(内部サーバーエラー) 2)は、フォントのデータをロードするために拒否:フォント/ WOFF; base64で、d09GRgABAAAAAGVUABEAAAAAxuQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABgAAAAC4AAAA0ArgC7UdQT1MAAAGwAAAQ6AAALgxKsqRTR1NVQgAAEpgAAAH3AAAELqI5y + RPUy8yAAAUkAAAAE8AAABgaGyBu2NtYXAAABTgAAABlAAAAkQkRATXY3Z0IAAAFnQAAABeAAAAugDsQf1mcGdtAAAW1AAABZcAAAvNb3/BHGdhc3AAABxsAAAACAAAAAgAAAAQZ2x5ZgAAHHQAAEApAAB3CtbiupxoZWFkAABcoAAAADYAAAA2BkubWWhoZWEAAFzYAAAAIAAAACQHFARfaG10eAAAXPgAAAI6AAAEEk4TN4Nsb2NhAABfNAAAAhIAAAISiLhpam1heHAAAGFIAAAAIAAAACACigzgbmFtZQAAYWgAAACUAAABHhQGLdJwb3N0AABh/AAAAq4AAASRk5y6n3ByZ ... QxUajCCFt4p9HP4fzdSWs2XhWl5HvJazrIrFUyB0l5dpqcW10lV2wukjMLuAvyMHNiYpgPsrCVXZDKrkpll6UWkh7kABVAFVCDe7UFmxagDegA + hLHRPbqtMo7ZHCpKd T6tPGXybzo0 + RXBLoPZt1tELcXxCmAAyZwYTJvdDFZKnDER44X2451rDqCyunIsRWvLSx6wnWqwPj/uX5/KuEy6DL0z6A/Fn79VihxMFJsrlAFy4DpZOcvNlMeNp + BRDLj0r + XFdRxdSNSNxiI/AL3ojKdAAB4AWPw3sFwIihiIyNjX + QGxp0cDBwMyQUbGdictkUwWDAwsDJogTgOPN4c9iz6bMos4iysHFChUDZXJnMWTSZZJrAQt9M + YQYBBh4GTgY2kEZOoJiA0z4GBxiEiDEzuGxUYewIjNjg0BGxkTnFZaMaiLeLo4GBkcWhIzkkAqQkEggceHw5HFkM2VRZJFlYebR2MP5v3cDSu5GJwWUDW9xG1hQXAFAmKZU =」それは、次のコンテンツセキュリティポリシーの指示に違反しているため、 "デフォルト-srcの '自己'"。 'font-src'は明示的に設定されていないので、 'default-src'がフォールバックとして使用されることに注意してください。

注:私はHerokuのを使用していますが、私が使用した「Herokuの設定:設定」私のAWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEYを保存するためのコマンド、および私のバケット名(S3_BUCKET)に保存されました。

コード:完全にエラーを解決するトピックオフ

<h1>New File</h1> 
 

 
<hr> 
 

 
<form method="POST" action="/save-as"> 
 
    <input type="text" id="file_input" name="file_input" placeholder="File Name"><br> 
 

 
    <textarea id="file_body" name="file_body"></textarea> 
 

 
    <hr> 
 
    <h2>Save changes</h2> 
 

 
    <input id="submit" type="submit" value="Save"> 
 
</form>

const express = require('express'); 
 
const aws = require('aws-sdk'); 
 

 
var port = process.env.PORT || 3000; 
 

 
const app = express(); 
 
app.set('views', './views'); 
 
app.use(express.static('./public')); 
 
app.engine('html', require('ejs').renderFile); 
 
app.listen(port); 
 
console.log("App is listening on port: " + port); 
 

 
aws.config.region = 'us-east-2'; 
 

 
const S3_BUCKET = process.env.S3_BUCKET; 
 

 
app.get('/', (req,res) => res.render('index.html')); 
 

 
app.post('/save-as', (req, res) => { 
 
    const s3 = new aws.S3(); 
 
    const fileName = req.query['file_name']; 
 
    const fileBody = req.query['file_body']; 
 
    const s3Params = { 
 
     Bucket: S3_BUCKET, 
 
     Key: fileName, 
 
     Body: fileBody 
 
    } 
 
    s3.putObject(s3Params, (err,data) => { 
 
     if(err) throw err; 
 
     res.writeHead(200, {'Content-Type':'text/plain'}); 
 
     res.write("Successful!!"); 
 
     res.end(); 
 
    }); 
 
});

答えて

0

しかし、あなたは( `アプリケーションが待機しているにconsole.logとしてそれを書くことができますon port:$ {port} `)これらは、オブジェクトリテラルの引用符ではなくバッククイックであるため、連結を使用する。

関連する問題