Warm tip: This article is reproduced from serverfault.com, please click

其他-如何使用 Angular 的发布请求将文件创建到Google云端硬盘?

(其他 - How to create file into Google Drive with post request in angular?)

发布于 2020-11-28 21:53:00

我正在尝试创建一个 Angular 文件,但无法像示例一样设置参数 name

@Injectable({
  providedIn: 'root'
})
export class DriveService {

  constructor(private http: HttpClient) {
  }

  token: string = localStorage.getItem('tokenGoogle');

  headers = new HttpHeaders()
    .set('Authorization', `Bearer ${this.token}`)
    .set('Accept', `application/json`)
    .set('Content-Type', `application/json`);

  creaFileDrive(nome: string): Observable<DriveResultFile> {

    return this.http.post<DriveResultFile>('https://www.googleapis.com/upload/drive/v3/files?key=AIzXXXXXXXXXXXXXXXXXX&uploadType=multipart',
      {name: 'pata'}, // HERE THE NAME DON'T SET
      {headers: this.headers}).pipe(
      map(x => {
        return x;
      })
    );
  }
}

显然,这不是我的目标

这是结果

谢谢

Questioner
Edoardo
Viewed
0
Kavinda Senarathne 2020-11-29 08:20:32
  1. 将分段上传 https://developers.google.com/drive/v3/web/multipart-upload与不同的标头一起用于文件元数据和实际文件。我自己一直呆在那里,没有找到如何在Angular 2+中为单独的请求标头添加边界的方法

  2. 在两个请求中上传文件。首先创建带有元数据的空文件(响应将提供文件的ID),其次是实际“更新”文件。

  3. 使用断点续传。首先请求“设置元数据”(甚至不会创建空文件),并获得“特殊链接”,以向其发送上传实际文件的请求。这种方法还有其他一些功能,例如分块上传。https://developers.google.com/drive/v3/web/resumable-upload

这是在Angular 2和DRIVE REST API V3中实现可恢复上传的另一个问题的链接

Angular 2+ HTTP POST和GDrive API。具有名称的可恢复文件上传