2010-05-19 7 views
5

मैं अमेज़न S3 उपयोग कर रहा हूँ एमपी 3 फ़ाइल डाल करने के लिए तो हमारी साइट आगंतुक अमेज़न एडब्ल्यूएस से एमपी 3 डाउनलोड करने की अनुमति के लिए मजबूर करने के लिए डाउनलोड Mp3 स्ट्रीम के बजाय फाइल। मैं फ़ाइल का प्रबंधन करने के लिए S3Fox का उपयोग करता हूं, सबकुछ ठीक काम करता है जब तक कि हाल ही में हमें विज़िटर से कई शिकायतें मिलीं कि एमपी 3 ब्राउज़र सेव डायलॉग संवाद को प्रदर्शित करने के बजाय ब्राउज़र के माध्यम से स्ट्रीम किया गया था। मैं कुछ एमपी 3 के लिए प्रयास करता हूं और ध्यान देता हूं कि कुछ एमपी 3 के लिए, सहेजें संवाद बॉक्स दिखाई देता है, और कुछ अन्य लोगों के लिए वे ब्राउज़र के माध्यम से स्ट्रीम किए जाते हैं। क्या मैंअमेज़न एडब्ल्यूएस S3 यह

किसी भी मदद की बहुत सराहना की जाएगी मजबूर करने के लिए है कि एमपी 3 फ़ाइल के बजाय डाउनलोड किया जाएगा वेब ब्राउज़र के माध्यम से स्ट्रीम करने कर सकते हैं ....।

Content-disposition: attachment; filename=song.mp3 

मुझे नहीं लगता कि इस S3Fox के साथ संभव है: धन्यवाद

उत्तर

9

आदेश करने के लिए ताकि आप सामग्री-विन्यास हैडर सेट करना होगा। आप Bucket Explorer (मुफ्त नहीं) का उपयोग कर सकते हैं या फ़ाइलों को अपलोड करने के लिए एक स्क्रिप्ट लिख सकते हैं।

+0

हम्म, यह किस प्रकार की स्क्रिप्ट होगी? क्या आप ऐसा कर सकते हैं उदा। s3cmd (http://s3tools.org/s3cmd)? – Jonik

+0

मुझे एस 3 सीएमडी के बारे में निश्चित नहीं है। इस मंच पोस्ट http://developer.amazonwebservices.com/connect/thread.jspa?messageID=67395 देखें। आप हेडर सेट करने के लिए आरईएसटी एपीआई का उपयोग कर सकते हैं। अमेज़ॅन कई भाषाओं (रूबी, पायथन, सी #) के लिए पुस्तकालय प्रदान करता है। आप स्क्रिप्ट लिखने के लिए अपनी पसंद की भाषा का उपयोग कर सकते हैं। – kgiannakakis

+0

आपकी प्रतिक्रिया के लिए धन्यवाद, मैं सामग्री-हेडर सेट करने के लिए क्लाउडबेरी (फ्रीवेयर) का उपयोग कर रहा हूं। यह बढ़िया काम करता है! बहुत बहुत धन्यवाद – Calua

2

ठीक है, यह एक लंबे समय हो गया जब आप इस पूछना है, लेकिन मैं एक ही समस्या थी और मैं सिर्फ मामले किसी और इस बात को हल करने की जरूरत है, समुदाय के साथ अपने समाधान साझा करना चाहते हैं। बेशक, आप अमेज़ॅन एस 3 कंसोल से सामग्री-प्रकार और सामग्री-विस्थापन बदल सकते हैं, लेकिन दिलचस्प बात यह प्रोग्रामेटिक रूप से करना है।

निम्नलिखित कोड मेरे लिए ठीक काम करता है:

require_once '../sdk-1.4.2.1/sdk.class.php'; 

// Instantiate the class 
$s3 = new AmazonS3(); 

// Copy object over itself and modify headers 
$response = $s3->copy_object(
    array(// Source 
     'bucket' => 'your_bucket', 
     'filename' => 'Key/To/YourFile' 
    ), 
    array(// Destination 
     'bucket' => 'your_bucket', 
     'filename' => 'Key/To/YourFile' 
    ), 
    array(// Optional parameters 
     'headers' => array(
      'Content-Type' => 'application/octet-stream', 
      'Content-Disposition' => 'attachment' 
     ) 
    ) 
); 

// Success? 
var_dump($response->isOK()); 

आशा है कि यह कर सकते हैं एक ही परेशानी से जूझ अन्य मदद करता है।

2

इस बल एडब्ल्यूएस S3 से फ़ाइलें डाउनलोड करने के लिए मेरे समाधान किया जा रहा समाप्त हो गया।

सफारी में फ़ाइलों के रूप में .html फ़ाइलों को डाउनलोड कर रहे थे जब तक मैं readfile लौटने बंद कर दिया और सिर्फ अकेले समारोह भाग गया।

public function get_download($upload_id) 
    { 
    try { 
     $upload = Upload::find($upload_id); 
     if ($upload->deleted) 
     throw new Exception("This resource has been deleted."); 

     if ($upload->filename == '') 
     throw new Exception("No downloadable file found. Please email [email protected] for support."); 

     header("Content-Description: File Transfer"); 
     header("Content-Type: application/octet-stream"); 
     header("Content-Disposition: attachment; filename={$upload->uploaded_filename};"); 

     readfile("https://s3.amazonaws.com/stackoverflow/uploads/" . $upload->filename); 
     exit; 
    } catch(Exception $e) { 
     return $e->getMessage(); 
    } 
    } 
+6

यह S3 से डाउनलोड को मजबूर नहीं कर रहा है, इसके बजाय आप डाउनलोड को मजबूर करने के लिए अपने वेबसर्वर संसाधनों को जोड़कर, अपने वेबसर्वर के माध्यम से फ़ाइल को S3 से वापस दबा रहे हैं। – davidjbullock

+0

@ डेविडजबुलॉक सुनिश्चित नहीं है कि यह था या नहीं, लेकिन यह एक खराब उदाहरण था। मैंने यह दिखाने के लिए अपना उदाहरण अपडेट किया कि मैं बेहतर क्या करता हूं। –

0

एस 3 प्रबंधन कंसोल विंडो में, दायाँ क्लिक करें और गुणों का चयन करें।

मेटाडाटा पर क्लिक करें।

अधिक मेटाडेटा जोड़ने पर क्लिक करें

कुंजी: सामग्री-स्वभाव मूल्य: लगाव

सहेजें। बस इतना ही।

यहां एक छवि है http://i.imgur.com/2PWK3xF.jpg