2010-07-23 25 views
5

वर्तमान में, मैं GetObjectMetaDataRequest बना देता हूं, यदि GetObjectMetaDataResponse अपवाद फेंकने का अर्थ है कि ऑब्जेक्ट मौजूद नहीं है। फ़ाइल को डाउनलोड किए बिना फ़ाइल मौजूद है या नहीं, यह जांचने का एक बेहतर तरीका है।यह जांचने का सबसे अच्छा तरीका क्या है कि कोई S3 ऑब्जेक्ट मौजूद है या नहीं?

उत्तर

-1

हां।

आप ListObjectsRequest का उपयोग कर सकते हैं। मार्कर संपत्ति का उपयोग करें, और केवल 1 तत्व पुनर्प्राप्त करें।

1

कोई ListObjectRequest नहीं है, लेकिन इसके बजाय एक ListObjectsRequest जहां आप कुंजी निर्दिष्ट नहीं कर सकते हैं। आपको अपनी इच्छित वस्तु को ढूंढने के लिए सभी वस्तुओं से गुजरना होगा। मैं वर्तमान में इसमें देख रहा हूं क्योंकि मुझे फ़ाइल डाउनलोड करते समय त्रुटियों का समय लगता है। (अगर किसी को कुछ विचार है कि इसे हल करने के लिए स्वतंत्र महसूस करें)।

यदि आप अपलोड आईडी को जानते हैं तो आप सूची पार्ट्स अनुरोध का प्रयास कर सकते हैं।

इसके अलावा मुझे कोई जानकारी नहीं है। एस 3 एपीआई लिखने वाले व्यक्ति के साथ चैट करना चाहते हैं ...

+0

लिखने में कोई त्रुटि है यही कारण है कि। मैंने अपना उत्तर भी अपडेट किया कि इसे कैसे प्राप्त किया जाए, इस बारे में थोड़ा और विवरण दें। –

5

आप इस कक्षा के S3FileInfo क्लास और मौजूदा विधि का उपयोग कर सकते हैं, यह जांचने के लिए कि क्या फ़ाइल फ़ाइल डाउनलोड किए बिना फ़ाइल मौजूद है या नहीं। नीचे दिया गया उदाहरण देखें मैंने AWSSDK 3.1.6 .net (3.5):

public static bool ExistsFile() 
{ 
    BasicAWSCredentials basicCredentials = new BasicAWSCredentials("my access key", "my secretkey"); 
       AmazonS3Config configurationClient = new AmazonS3Config(); 
       configurationClient.RegionEndpoint = RegionEndpoint.EUCentral1; 

       try 
       { 
        using (AmazonS3Client clientConnection = new AmazonS3Client(basicCredentials, configurationClient)) 
        { 

         S3FileInfo file = new S3FileInfo(clientConnection, "mybucket", "FolderNameUniTest680/FileNameUnitTest680"); 
         return file.Exists;//if the file exists return true, in other case false 
        } 
       } 
       catch(Exception ex) 
       { 
        return false; 
       } 
    } 
2

इस समाधान का प्रयास करें, यह मेरे लिए काम करता है।

AmazonS3Client client = new AmazonS3Client(accessKey, secretKey, regionEndpoint);  
S3FileInfo s3FileInfo = new S3FileInfo(client, bucketName, fileName); 
if (s3FileInfo.Exists) 
    return true; 
else 
    return false; 
0

आप शायद, बाकी अपने आप एपीआई का उपयोग करने के लिए जा रहे हैं के रूप में विधि का सुझाव दिया, आंतरिक रूप से बस बिल्कुल वही बात (कोशिश ... अनुरोध पर पकड़) करता

संबंधित मुद्दे

 संबंधित मुद्दे