[英]How to upload image from url to Amazon S3 in Angular5
我想將圖像從URL上傳到我的Amazon S3 buctkett。
我可以使用以下代碼上傳,但結果是網址,而不是圖片...
在我的Angular5控制器中:
import { AwsService } from '../../services/aws.service';
...
@Injectable()
export class MyClass {
constructor(
private aws: AwsService,
) {}
sendimg() {
var imgurl = 'https://www.google.be/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png';
const allparams = {
Body: imgurl,
Key: place_id + 'logo.png',
ContentType: 'png',
ACL: 'public-read'
};
this.aws.s3upload(allparams, 'mybuckett');
}
}
在aws.service.ts中:
import { S3 } from 'aws-sdk';
import { Config } from '../app/config';
...
@Injectable()
export class AwsService {
s3upload(allparams, bucket) {
var AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: Config.AWS.accessKeyId,
secretAccessKey: Config.AWS.secretAccessKey,
region: Config.AWS.region
});
var s3 = new AWS.S3({
params: { Bucket: bucket}
});
s3.upload(allparams, function (err, data) {
if (err) {
alert(err);
}
});
}
}
是否可以直接這樣做? 還是應該先從URL下載文件,然后將其上傳到S3存儲桶?
我怎樣才能做到這一點 ?
您可以使用aws sdk直接在客戶端上直接執行此操作,但是由於存在安全漏洞,因此不建議這樣做。
我建議您編寫一種服務器方法來獲取文件並上傳到s3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.