Aws s3 slet objekter ved hjælp af javascript

Jeg ønsker at slette en fil fra amazon s3 ved hjælp af javascript. Jeg har allerede uploade filer til s3, ved hjælp af javascript. nogen ideer, kan du hjælpe

OriginalForfatteren user3335960 | 2015-01-03

4 svar

  1. 23

    Du kan bruge js metode fra s3:
    http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteObject-property

    var AWS = require('aws-sdk');
    AWS.config.loadFromPath('./credentials-ehl.json');
    var s3 = new AWS.S3();
    var params = {  Bucket: 'your bucket', Key: 'your object' };
    s3.deleteObject(params, function(err, data) {
      if (err) console.log(err, err.stack);  //error
      else     console.log();                 //deleted
    });
    

    Være opmærksom på, at S3 aldrig tilbage objektet er blevet slettet.
    Du er nødt til at tjekke det før eller efter, med getobject, headobject, waitfor osv

    S3 returnerer DeleteMarker og VersionId.
    det er fordi du har fået en versioneret spand. Du er nødt til at slette alle objekter versioner (herunder slette markører) for at fjerne objektet helt.
    Hvis du bruger fdisk/venter, skal du tilføje .promise() til sidst. Ex: await s3.deleteObject(params).promise()

    OriginalForfatteren jlalcazar

  2. 14

    Du kan bruge konstruktion som denne:

    var params = {
      Bucket: 'yourBucketName',
      Key: 'fileName'
    /* where value for 'Key' equals 'pathName1/pathName2/.../pathNameN/fileName.ext' - full path name to your file without '/' at the beginning */
    };
    s3.deleteObject(params, function(err, data) {
      if (err) console.log(err, err.stack); //an error occurred
      else     console.log(data);           //successful response
    });
    

    Og glem ikke at pakke det til Løfte.

    OriginalForfatteren Vitaliy Andrusishyn

  3. 1

    Du kan bruge deleteObjects API til at slette flere objekter på én gang i stedet for at kalde API for hver tast, for at slette. Hjælper med at spare tid og båndbredde på netværket.

    Du kan gøre følgende-

    var deleteParam = {
        Bucket: 'bucket-name',
        Delete: {
            Objects: [
                {Key: 'a.txt'},
                {Key: 'b.txt'},
                {Key: 'c.txt'}
            ]
        }
    };    
    s3.deleteObjects(deleteParam, function(err, data) {
        if (err) console.log(err, err.stack);
        else console.log('delete', data);
    });
    

    For reference se – https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteObjects-property

    OriginalForfatteren Aniket Thakur

  4. 1

    Før du sletter den fil, du er nødt til at tjekke 1) fil om det er på spanden, fordi Hvis filen er ikke tilgængelig i spanden, og ved hjælp af deleteObject API dette ikke smide nogen fejl 2)CORS Configuration af spanden. Ved hjælp headObject API giver fil status i spanden.

    AWS.config.update({
            accessKeyId: "*****",
            secretAccessKey: "****",
            region: region,
            version: "****"
        });
    const s3 = new AWS.S3();
    
    const params = {
            Bucket: s3BucketName,
            Key: "filename" //if any sub folder-> path/of/the/folder.ext
    }
    try {
        await s3.headObject(params).promise()
        console.log("File Found in S3")
        try {
            await s3.deleteObject(params).promise()
            console.log("file deleted Successfully")
        }
        catch (err) {
             console.log("ERROR in file Deleting : " + JSON.stringify(err))
        }
    } catch (err) {
            console.log("File not Found ERROR : " + err.code)
    }
    

    Som params er konstant, er den bedste måde at bruge det med const. Hvis filen er ikke fundet i s3 det kaster fejlen NotFound : null.

    Hvis du ønsker at anvende alle operationer i spanden, du er nødt til at ændre tilladelserne for CORS Configuration i de respektive spand i AWS. For at ændre tilladelser Bucket->permission->CORS Configuration og Tilføj denne kode.

    <CORSConfiguration>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>HEAD</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
    </CORSConfiguration>
    

    for mere information om CROS Konfiguration : https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html

    OriginalForfatteren banoth ravinder

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *