Параметр curl --upload-file использует запрос PUT для передачи данных на ваш сервер.Параметр -u использует базовую аутентификацию.Существует множество способов отправить похожий запрос с помощью Angular.Скорее всего, у вас будет служба, которая сделает эту работу за вас.Ниже приведен один из возможных способов сделать это.Обратите внимание, что приведенная ниже сервисная функция возвращает наблюдаемое, на которое необходимо подписаться в компоненте.Возможно что-то вроде следующего:
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { HttpClient, HttpEvent, HttpParams, HttpRequest, HttpHeaders } from '@angular/common/http';
@Injectable({ providedIn: 'root' })
export class AuthService {
constructor(private http: HttpClient) {}
public uploadFile(file: File, username: string, password: string): Observable<HttpEvent<any>> {
// Note - this returns an EVENT, so we can track progress
var headers = new HttpHeaders();
headers.append("Authorization", "Basic " + btoa(`${username}:${password}`));
let formData = new FormData();
formData.append('upload', file);
const params = new HttpParams;
const options = { headers: headers, params: params, reportProgress: true };
const req = new HttpRequest('PUT', 'http://use08nexus01p:8081/nexus/content/repositories/', formData, options);
return this.http.request(req);
}
}