मेरे पास एडब्ल्यूएस में एक बाल्टी है जिसमें फाइलें नियमित रूप से अपलोड की जाती हैं। एक नीति है कि इस बकेट में जीवनचक्र के नियम संलग्न नहीं हो सकते हैं।
मैं एक लैम्ब्डा की तलाश में हूं जो 2 सप्ताह से अधिक पुरानी वस्तुओं को हटा देगा। मुझे पता है कि टाइमडेल्टा लाइब्रेरी का उपयोग तिथियों की तुलना करने के लिए किया जा सकता है, लेकिन मैं यह नहीं समझ सकता कि मैं इसका उपयोग कैसे कर सकता हूं यह जांचने के लिए कि कोई वस्तु 2 सप्ताह से अधिक पुरानी है या नहीं (मैं अजगर के लिए नया हूं)।
अब तक मेरे पास है:
import boto3
import datetime
s3 = boto3.resource('s3')
now = datetime.datetime.now()
now_format = int(now.strftime("%d%m%Y"))
print(f'it is now {now_format}')
# Get bucket object
my_bucket = s3.Bucket('cost-reports')
all_objects = my_bucket.objects.all()
for each_object in all_objects:
obj_int = int(each_object.last_modified.strftime('%d%m%Y'))
print("The object {} was last modified on the {}".format(
each_object.key, obj_int))
तो यह सिर्फ strftime तुलना का उपयोग कर रहा है, लेकिन क्या यह वास्तव में भी काम करेगा? या क्या मुझे टाइमडेल्टा मॉड्यूल का उपयोग करना है और यह कैसा दिखेगा?
2 जवाब
आपकी each_object.last_modified
datetime
वस्तु है, ठीक now
की तरह।
तो पिछले संशोधन से दिनों की संख्या की गणना करने के लिए, यह उतना आसान होना चाहिए जितना:
now = datetime.datetime.now().astimezone()
last_modified_days_ago = (now - each_object.last_modified).days
आप उपयोग कर सकते हैं:
from datetime import datetime, timedelta
from dateutil.tz import tzutc, UTC
...
for object in bucket.objects.all():
if object.last_modified > datetime.now(tzutc()) - timedelta(days = 14):
<Do something here>
कोड कॉपी किया गया: पिछले 24 घंटों में बनाई गई Amazon S3 फ़ाइलों को डाउनलोड करने के लिए Python स्क्रिप्ट को बेहतर बनाएं
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।