की कोशिश कर रहा करने के लिए सेट हैडर ContentDisposition पर PutObjectCommand परिणाम में एक 403 forbidden

0

सवाल

मैं फ़ाइलों को अपलोड करने के लिए S3 सफलतापूर्वक अपने आवेदन के साथ. मैं एक प्रत्यक्ष अपलोड का उपयोग ब्राउज़र से एक signedUrl है कि मेरे सर्वर उत्पन्न करता है के लिए मुझे का उपयोग एडब्ल्यूएस-एसडीके v3.

प्राप्त करने के लिए singed यूआरएल यह एक सा लग रहा है इस तरह

const s3Params = {
        Bucket : bucketName,
        Key : fileName,
        ContentType:fileType,
        // Metadata:{'Content-Disposition':'attachment'}
        // ContentDisposition:'attachment'
    };


    try {
        const command = new PutObjectCommand(s3Params);

        const url = await getSignedUrl(s3v3,command,{expiresIn:60});
        return url;
    } catch (e) {
        console.log('************** there was an error signing th url');
        console.log(e);
        throw e;
    }
};

यह काम कर रहा है पूरी तरह से ठीक है, लेकिन तब के रूप में मैं एक बिट को पढ़ने के प्रलेखन मैंने देखा कि मैं में सक्षम होना चाहिए करने के लिए सेट हैडर ContentDisposition. में इस दस्तावेज यह कहते हैं कि इनपुट के PutObjectCommand से फैली PutObjectRequest

बाद में एक वैकल्पिक पैरामीटर कहा जाता है ContentDisposition के रूप में मैं होगा की तरह स्थापित करने के लिए इस लगाव के लिए अनुमति देने के लिए, मुझे संकेत करने के लिए एक "डाउनलोड" विंडो अपने उपयोगकर्ताओं के लिए. हालांकि, जब मैं का उपयोग करें signedURL के रूप में ऊपर है, लेकिन जोड़ने ContentDisposition:'attachment' क्षेत्र मैं एक निषिद्ध त्रुटि ।

क्या किसी को पता है अगर im कुछ भी याद आ रही है यहाँ? यह एक वास्तविक विकल्प है या मैं की जरूरत है को संशोधित करने के लिए मेरे में कुछ अनुमतियों के S3 के लिए यह?

1

सबसे अच्छा जवाब

1

हम निर्दिष्ट करने के लिए ContentDisposition के लिए PutObjectCommand param और के लिए भी getSignedUrl समारोह के रूप में इस तरह:

async function main(fileName, bucketName, fileType) {
    const s3Params = {
        Bucket: bucketName,
        Key: fileName,
        ContentType: fileType,
        ContentDisposition: 'attachment'
    };

    const client = new S3Client({region: 'us-east-1'});
    const command = new PutObjectCommand(s3Params);

    const url = await getSignedUrl(client, command, {expiresIn: 60, ContentDisposition: 'attachment'});

    const file = await fs.readFile(fileName);

    const result = await axios({
        method: 'put',
        url,
        data: file,
        headers: {
            'Content-Type': fileType,
            'Content-Disposition': 'attachment'
        }
    });

    return result;
}
2021-10-30 20:29:21

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में