Это можно сделать, если вы используете статический файловый хост с клиентским SDK (например, AWS S3).
Предположим, у вас хостинг из корзины s3 с именем mysite.com
, и вы настроили эту папку ресурсов корзины для публичной загрузки (возможно, плохая идея ...)
вваш проект, вы запустили npm install aws-sdk
и у вас есть служба загрузки aws, такая как
import {Injectable} from '@angular/core';
import * as AWS from 'aws-sdk';
const BUCKET = 'mysite.com';
@Injectable()
export class AwsUploadService {
private s3 = new AWS.S3({
apiVersion: '2006-03-01',
params: {Bucket: BUCKET}
});
uploadToAssets(file: File) {
this.s3.upload({
Key: 'assets/' + file.name,
Body: file
}, (err, data) => {
console.log(err, data); // this will tell you if it went ok or not
});
}
}
, тогда вы можете просто вызвать эту функцию загрузки по мере необходимости с файлом, который вы хотите загрузитьно, опять же, это, вероятно, плохая идея, и вам гораздо лучше иметь сервер.Если вы не используете статический файловый хост, то на самом деле мало что можно сделать без написания сервера.
подробнее об использовании s3 в браузере: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-example-photo-album.html