मैंने कभी जेनकिंस के लिए एस 3 प्लगइन के साथ काम नहीं किया है (लेकिन अब जब मुझे पता है कि यह अस्तित्व में है, तो मैं इसे आज़मा सकता हूं), हालांकि, कोड को देखते हुए, ऐसा लगता है कि आप केवल वही काम कर सकते हैं जो आप कामकाज का उपयोग करना चाहते हैं ।
यहाँ क्या वास्तविक प्लगइन कोड है (GitHub से लिया गया) --I कोड के कुछ हिस्सों कि पठनीयता के कारण प्रासंगिक नहीं हैं हटाया:
वर्ग hudson.plugins.s3.S3Profile
, विधि upload
:
final Destination dest = new Destination(bucketName,filePath.getName());
getClient().putObject(dest.bucketName, dest.objectName, filePath.read(), metadata);
अब अगर आप hudson.FilePath.getName()
के JavaDoc में एक बार देख ले:
निर्देशिका के बिना सिर्फ फ़ाइल नाम भाग हो जाता है।
public Destination(final String userBucketName, final String fileName) {
if (userBucketName == null || fileName == null)
throw new IllegalArgumentException("Not defined for null parameters: "+userBucketName+","+fileName);
final String[] bucketNameArray = userBucketName.split("/", 2);
bucketName = bucketNameArray[0];
if (bucketNameArray.length > 1) {
objectName = bucketNameArray[1] + "/" + fileName;
} else {
objectName = fileName;
}
}
Destination
वर्ग JavaDoc का कहना है::
अब, hudson.plugins.s3.Destination
के निर्माता में एक बार देख ले
सम्मेलन यहां लागू किया है कि एक/में एक बाल्टी नाम है ऑब्जेक्ट नाम में संरचना बनाने के लिए प्रयोग किया जाता है। यही है, "mybucket/v1" के बाल्टी नाम में file.txt का एक पुट Mybucket में ऑब्जेक्ट "v1/file.txt" बनाया जाएगा।
निष्कर्ष: filePath.getName()
कॉल स्ट्रिप्स किसी भी उपसर्ग बंद (S3 किसी भी निर्देशिका नहीं है, बल्कि उपसर्गों, अधिक जानकारी के लिए this और this धागे देखें) आप फ़ाइल में जोड़ें। यदि आपको वास्तव में अपनी फ़ाइलों को "फ़ोल्डर" में रखना है (यानी एक विशिष्ट उपसर्ग जिसमें स्लैश (/
) शामिल है), तो मैं आपको सुझाव देता हूं कि आप इस उपसर्ग को अपने बाल्टी नाम के अंत में जोड़ दें, जैसा कि Destination
क्लास जावाडॉक में बताया गया है ।
पर जायेगा, मैं टी का उपयोग करने का सुझाव दूंगा वह अब JClouds प्लग। – Aron
जेक्लाउड्स भी महान नहीं है; यह स्ट्रीमिंग के बारे में एक अस्पष्ट त्रुटि के साथ विफल रहता रहता है। इसके लिए एक सीएलआई उपकरण में फॉलबैक होने के कारण ... – aendrew
s3cmd इष्टतम नहीं है क्योंकि इसे aws क्रेडेंशियल्स के लिए एक अलग स्टोर की आवश्यकता है। एस 3 प्लगइन के प्रमाणीकरण के लिए एस 3 प्रोफाइल के उपयोग की योग्यता है। सहमत हैं कि आर्टिफैक्ट पदानुक्रम को संरक्षित करना वर्तमान व्यवहार के लिए बेहतर होगा। –