Как удалить файлы, загруженные на s3, используя javascript или реагировать? - PullRequest
0 голосов
/ 21 февраля 2020

Я хочу прекратить загрузку файла, а также удалить загруженные файлы из s3, нажав кнопку удаления. Код работает, но в консоли выводятся данные о том, что при удалении произошла ошибка net: err_failed.

Ниже приведен код,

handle_upload = () => { 
    this.upload(item.id); 
}

upload = () => {
    AWS.config.update({
        region: upload_definition.upload.region,
        accessKeyId: upload_definition.upload.credentials.access_key_id,
        secretAccessKey: upload_definition.upload.credentials.secret_access_key,
        sessionToken: upload_definition.upload.credentials.session_token,
    });

    const upload = new S3.ManagedUpload({
        params: {
            Bucket: upload_definition.upload.bucket_name,
            Key: upload_definition.upload.prefix + file.name,
            Body: file,
            leavePartsOnError: true,
        },
     });

     this.upload.on('httpUploadProgress', function (some_var) {
         /*some content*/
     });

     try {
         await this.upload.promise();
     } catch (error) {
         this.setState({failed: true});
         return;
     }

 }

 handle_delete = ()  => {
     delete_item();//my api to delete the item
}

 render = () => {
     return (
         <button onclick={this.handle_delete}>Delete</button>
      )
  }

Я не уверен, как удалить файлы из s3 после загрузки ... при нажатии кнопки удаления в handle_delete я вызываю api, чтобы удалить элемент. Думал прервать закачку и при прерывании звонил удалить версию.

Пробовал что-то вроде ниже и не работает. Может ли кто-нибудь помочь мне исправить это. спасибо.

handle_upload = () => { 
    this.upload(item.id); 
}

upload = () => {
    AWS.config.update({
        region: upload_definition.upload.region,
        accessKeyId: upload_definition.upload.credentials.access_key_id,
        secretAccessKey: upload_definition.upload.credentials.secret_access_key,
        sessionToken: upload_definition.upload.credentials.session_token,
    });

    this.upload = new S3.ManagedUpload({
        params: {
            Bucket: upload_definition.upload.bucket_name,
            Key: upload_definition.upload.prefix + file.name,
            Body: file,
            leavePartsOnError: true,
        },
     });

     this.upload.on('httpUploadProgress', function (some_var) {
         /*somecontent*/
     });

     try {
         await this.upload.promise();
     } catch (error) {
         this.setState({failed: true});
         return;
     }

 }

 handle_delete = async()  => {
     await this.upload.abort();
     delete_item();//my api to delete the item
}

Как я могу удалить загруженные файлы на s3 с веб-интерфейса ... спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...