Dev Perfects – Telegram
Dev Perfects
41 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
Analyzing E2E bot
Twitter Space
بررسی ربات ناشناس E2E

توی این اسپیس توییتر همراه آقای جرجندی و یاشار شاهین‌زاده با سایر اشخاص صاحب‌نظر امنیت سایبری ربات ناشناس رمزنگاری E2E رو بررسی کردیم.

@Yasha
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️برنامه LibreOffice 24.8: ویژگی‌های جدید و بهبودها
برنامه LibreOffice 24.8 با بهبودهای قابل توجهی ارائه شده است. این نسخه جدید شامل یک ویژگی حریم خصوصی، بهبودهای ویرایشگر، بهبودهای محاسباتی، بهبودهای ارائه، و سایر تغییرات و بهبودها است.

🔹حریم خصوصی: امکان حذف اطلاعات شخصی مانند نام نویسنده، زمان‌بندی، نام چاپگر، مدت ویرایش و تنظیمات هنگام ذخیره پیش‌نویس.
🔹ویرایشگر: یک "پنل جستجو" جدید در نوار کناری برای مشاهده آسان جستجوهای سریع، رندر بهتر متن در سیستم‌های نوشتاری CJK با جایگزین فونت ، رفع یک مشکل در موقعیت‌یابی شکل در وارداکردن فایل DOCX برای پاراگراف‌های RTL.
🔹محاسبات: پشتیبانی جدید برای وارد کردن/صادر کردن قالب جدول OOXML، محلی‌سازی بهتر نوار وضعیت، امکان حذف نظرات با استفاده از منوی کلیک راست، توابع جدید مانند LET، XLOOKUP و XMATCH، عملکرد محاسبه بهتر با ترد و گزینه‌های انعطاف‌پذیرتر برای عملگرهای مقایسه.
🔹ارائه: یک "پنل یادداشت‌ها" جدید برای یادداشت‌ها، که هنگام فعال شدن، یک پنل قابل جمع شدن درست زیر اسلاید نمایش می‌دهد. باز کردن فایل‌های PPTX با شکل‌های سنگین سفارشی اکنون سریع‌تر است.
🔹انواع نمودار جدید: "Pie-of-Pie" و "Bar-of-Pie".
🔹یک بسته رسمی برای رایانه‌های ویندوز مبتنی بر ARM.
🔹پشتیبانی برای اضافه کردن الگوهای تایلینگ در فایل‌های PDF وارد شده در Draw.
🔹معرفی رمزگذاری ODF مبتنی بر رمز عبور با کارایی بالا.
🔹انتخاب کلمات چینی و ژاپنی در Math اکنون بر اساس قوانین ICU است.
🔹پایداری و عملکرد: نسخه 24.8 بر روی افزایش پایداری و بهبود عملکرد کلی برنامه تمرکز کرده است. بسیاری از باگ‌ها برطرف شده‌اند و سرعت پاسخگویی برنامه افزایش یافته است.
🔹سازگاری: سازگاری با فرمت‌های مختلف فایل، به ویژه فرمت‌های مایکروسافت آفیس، بهبود یافته است. این بدان معناست که شما می‌توانید به راحتی فایل‌های خود را بین LibreOffice و سایر برنامه‌های آفیس مبادله کنید.
🔹دسترسی‌پذیری: LibreOffice 24.8 به بهبود دسترسی برای کاربران دارای معلولیت کمک کرده است. این شامل بهبودهای در رابط کاربری، پشتیبانی از فناوری‌های کمکی و تطبیق با استانداردهای دسترسی است.
🔹بومی‌سازی: جامعه گسترده LibreOffice به ترجمه و بومی‌سازی برنامه کمک کرده است. در نتیجه، LibreOffice 24.8 در بسیاری از زبان‌ها در دسترس است و تجربه کاربری را برای کاربران در سراسر جهان بهبود می‌بخشد.
🔹پشتیبانی از سیستم‌های عامل: LibreOffice 24.8 از طیف گسترده‌ای از سیستم عامل‌ها، از جمله ویندوز، لینوکس و macOS پشتیبانی می‌کند.
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
linuxtnt
http://seilany.ir
——————————————————
⭐️حمایت از کانال
https://zarinp.al/learninghive.ir
https://daramet.com/hossein_seilani
Forwarded from Code Module | کد ماژول (genix)
‏Array indexing چیست؟🚀

‏Array indexing تکنیکیه که برای دسترسی به المنت ها در یک آرایه بر اساس موقعیت یا ایندکس اونها استفاده میشه. همونطور که میدونید هر المنت در یک آرایه با ایندکس خود مشخص میشه که نشون دهنده موقعیت اون نسبت به المنت اول هست. ایندکسینگ امکان دسترسی موثر و مستقیم به هر المنت در آرایه رو فراهم میکنه که برای کارهای محاسباتی مختلف ضروری هست. به عنوان مثال یک آرایه یک بعدی رو در نظر بگیرید:

int A[5] ={10, 20, 30, 40, 50}


در این آرایه 5 عنصر وجود داره که در مکان های حافظه به هم پیوسته ذخیره میشن. ایندکس المنت اول 0، المنت دوم 1 و... هست. و همونطور که میدونید برای دسترسی مثلا به المنت سوم آرایه باید اینکار رو انجام بدیم:

A[2] = 30;


از اونجا که ایندکسینگ از صفر شروع میشه در واقع ایندکس دوم به المنت سوم اشاره داره. اما میدونستید میشه هر کدوم از این هارو محاسبه کرد؟

موقعیت هر المنت در یک آرایه یک بعدی رو میشه با استفاده از یک فرمول ساده محاسبه کرد. این فرمول آدرس پایه آرایه، ایندکس المنت و اندازه هر المنت در حافظه رو محاسبه میکنه( توجه داشته باشید فقط برای آرایه های یک بعدی جوابه)

Address of A[i] = Base Address  + (i * Size of each element)


به عنوان مثال، اگر آدرس پایه آرایهA هزار باشه و هر عدد صحیح 4 بایت حافظه اشغال کنه، آدرس المنت در ایندکس دوم میشه:


Address of  A[2] = 1000 + (2 * 4) = 1008


بنابراین، المنت در ایندکس 2 در حافظه به آدرس 1008 ذخیره میشه.

محاسبه آدرس المنت چند بعدی ⬇️

اما این ها برای آرایه های یک بعدی بود و برای آرایه های چند بعدی مساعل پیچیده تر میشه، چون باید چندین ایندکس رو در نظر بگیرید. با این حال، فرآیند رو میشه به صورت انتراعی توضیح داد. به عنوان مثال فرمول کلی ما در آرایه های یک بعدی اینه: ( فرمول بالایی هم هست اما این جامع تره)

Address of A[i] = B + W * (i - L_B)


به صورت خلاصه معنی این فرمول یعنی این:
‏- B: آدرس پایه آرایه است.
‏- W: اندازه هر المنت در بایت.
‏- i: ایندکس المنت.
‏- L_B(lower bound): به کوچکترین یا مقدار ایندکس اولیه ای که المنت آرایه از اون ایندکس شروع میشه اشاره داره. ( به صورت دیفالت 0 هست که در نظر گرفته نمیشه)


برای اینکه پست زیادی طولانی نشه، ادامه مطالب رو در تلگراف برای شما عزیزان آماده کردیم🙂


#array
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Sudoer (Morteza Bashsiz)
درود بر همه شما دوستان عزیز

ویدیو آشنایی با NipoVPN رو رکورد کردم گذاشتم یوتیوب
توش یه توضیح مختصری از کاری که میکنه دادم و همینطور یه تستی ازش گرفتم و اینکه مشکلاتی که داره رو هم توضیح دادم

دیگه همراهی کنید کمک کنید تا مشارکت انجام بشه و کامل‌تر بشه

سپاس از همراهی شما


https://youtu.be/slAaPVnckE0
Forwarded from Gopher Academy
🔵 عنوان مقاله
Valgo 0.3: An Expressive Validator Library

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته به معرفی کتابخانه‌ای جدید برای اعتبارسنجی داده‌ها به نام "Valgo" پرداخته است. تمرکز اصلی این کتابخانه بر تایپ‌سیف (امنیت نوع) و قابلیت توسعه با استفاده از جنریک‌ها است. این کتابخانه با سایر کتابخانه‌های اعتبارسنجی تفاوت‌های چشمگیری دارد، به ویژه در نحوه اعمال قوانین اعتبارسنجی. در "Valgo"، قوانین به جای استفاده از تگ‌های ساختار، به صورت توابع نوشته می‌شوند که این امر امکان سازگاری و انعطاف‌پذیری بیشتری در چگونگی و مکان اعتبارسنجی داده‌ها را فراهم می‌آورد. این تغییر نه تنها افزایش کنترل بر روی پروسه اعتبارسنجی را به دنبال دارد بلکه امکان سفارشی‌سازی بیشتری را برای توسعه‌دهندگان ایجاد می‌کند تا بتوانند با توجه به نیازهای خاص پروژه خود، بهترین استفاده را از این کتابخانه ببرند.

🟣لینک مقاله:
https://github.com/cohesivestack/valgo


👑 @gopher_academy
Forwarded from Syntax | سینتکس (Daimon)
تو چند دقیقه نحوه کار با Redis Pub/Sub رو تو پایتون یاد بگیر

Pub/Sub
(انتشار/اشتراک) یک الگوی معماری است که به برنامه‌ها اجازه می‌دهد تا به صورت غیرمستقیم با یکدیگر ارتباط برقرار کنند. در این الگو، تولیدکنندگان اطلاعات (Publisher) پیام‌ها را منتشر می‌کنند و مصرف‌کنندگان (Subscriber) به موضوعات (Topics) خاصی که به آن‌ها علاقه‌مند هستند، اشتراک می‌گذارند. این سیستم اجازه می‌دهد تا بدون نیاز به وابستگی مستقیم با یکدیگر، اطلاعات را تبادل کنند.

مزایای Pub/Sub
- کاهش وابستگی‌ها: تولیدکنندگان و مصرف‌کنندگان نیازی به شناخت یکدیگر ندارند.
- مقیاس‌پذیری: می‌توان به سادگی مصرف‌کنندگان و تولیدکنندگان جدیدی اضافه کرد.
- توزیع‌پذیری: می‌توان سیستم‌ها را به صورت توزیع‌شده پیاده‌سازی کرد.

مثال ساده با Redis Pub/Sub


در این مثال، از Redis به عنوان سیستم Pub/Sub استفاده خواهیم کرد. ابتدا باید Redis را نصب و راه‌اندازی کنید.

نصب Redis

تو ریپازیتوری ای که لینکشو آخر پست میذارم، سرویس ردیس رو توی docker-compose.yml مشخص کردم و روی داکر اجراش میکنیم.
همچنین داخل فایل .env تنظیمات ردیس رو میتونید مشخص کنید.

docker-compose up -d


پیاده‌سازی در پایتون

برای این کار به کتابخانه redis نیاز داریم. می‌توانید آن را با pip نصب کنید:

pip install redis



در این مثال، یک Publisher و یک Subscriber خواهیم داشت.

Publisher (server.py):

import json

from redis import StrictRedis


server = StrictRedis(host="localhost", port=6399, password="redis_password", db=0)

# redis ping
print(server.ping())

topic = "example_topic"

data = {
"name": "alireza",
"age": 22,
}

server.publish(channel=topic, message=json.dumps(data))


در قدم اول کانکشن با ردیس رو می سازیم.
با متد ping میتونیم چک کنیم وضعیت کانگشنمون اوکی هست یا نه(جنبه آموزشی نوشتمش)
بعد مشخص کردیم که topic ما اسمش چیه.
دیتایی که قراره داخل payload مسیج قرار بدیم رو مشخص کردیم که بصورت دیکشنری هستش و بعدش اومدیم به json تبدیلش کردیم و مسیح رو پابلیش کردیم.

Subscriber (client.py):

import json

from redis import StrictRedis


client = StrictRedis(host="localhost", port=6399, password="redis_password", db=0)

topic = "example_topic"

pubsub = client.pubsub()

pubsub.subscribe(topic)

print("waiting for message...")

while True:
for message in pubsub.listen():
if message["data"] == 1:
continue
match message["type"]:
case topic:
# TODO - change serialization. json is not good
data = json.loads(message["data"])
print("received message", data["name"], data["age"])

در قدم اول یک کانکشن ردیس گرفتیم. بعد تاپیکی که subscribe میکنیمش رو مشخص کردیم(میتونیم چندین تا تاپیک رو سابسکرایب کنیم)
در قدم بعدی داخل یک long running میایم به مسیج های جدیدی که میاد گوش میدیم و یک switch case زدیم و براساس تاپیک ها میتونیم کارهای خاص خودش رو انجام بدیم.

نحوه اجرا

1. در یک ترمینال، client.py را اجرا کنید
2. در یک ترمینال دیگه server.py رو اجرا کنید که با هربار اجرا یک مسیج رو پابلیش میکنه.

سورس کد:
https://github.com/alireza-fa/redis-pub-sub-example

#redis_pub_sub #pub_sub #event_driven #python

@Syntax_fa
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
میدونین Headless Cms‌ چیه و چیکار میکنه ؟؟؟
Forwarded from Python Hints
۱ دقیقه تا شروع
Forwarded from Gopher Academy
درود دوستان اپدیت جدید تلگرام(البته خیلی وقت پیش) که ری اکشن جدیدی به نام استارز فعال شده که با زدن اون میتونید به چنل هایی که دوست دارید استارز هدیه بدین و ازشون حمایت کنید.

استارز هایی که شما اهدا میکنید به موجودی چنل ها اضافه میشه و قابلیت برداشتش برای ادمین ها فراهم میشه

این استارز رو ما اضافه کردیم توی reaction های چنل


👑 @gopher_job
Forwarded from کداکسپلور | CodeExplore (Koorosh)
کدام یک از انواع داده های زیر در Go وجود ندارد؟
Anonymous Quiz
50%
char
10%
int
20%
string
19%
bool
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️بهبودهای در حال انجام برای مدیریت بسته APT در توزیع دبیان

مدیر بستهAPT که مخفف "Advanced Package Tool" است، یکی از رایج ترین مدیران بسته در بین توزیع های مبتنی بر دبیان مانند اوبونتو است. از زمان معرفی آن در سال ۱۹۹۸، APT با وصله‌های مداوم برای همگام شدن با دنیای در حال تحول توزیع‌های لینوکسی، بهتر شده است.


🔹برنامه APT 2.9.3 و Solver3: گامی رو به جلو در مدیریت بسته‌ها
نسخه اخیر APT، یعنی 2.9.3، با معرفی یک حل‌کننده وابستگی آزمایشی به نام Solver3، پیشرفت قابل توجهی در مدیریت بسته‌ها برای سیستم‌های مبتنی بر دبیان ایجاد کرده است. این حل‌کننده نوآورانه قصد دارد روش حل وابستگی‌ها را متحول کند و بهبودهای بالقوه‌ای در عملکرد و قابلیت اطمینان ارائه دهد.

🔹الگورینم Solver3 یک الگوریتم حل وابستگی برای APT است که با یک مجموعه خالی از بسته‌ها شروع می‌شود، به تدریج هر بسته نصب‌شده به صورت دستی را اضافه می‌کند و سپس به طور خودکار هر بسته مفقود شده را برای حل وابستگی‌ها نصب می‌کند.

🔹در حال حاضر، انتشار آزمایشی به عنوان مشارکت اختیاری برای نسخه بعدی دبیان ۱۳ با نام رمز "Trixie" برنامه‌ریزی شده است که گفته می‌شود در حدود فوریه ۲۰۲۵ عرضه می‌شود.

اگر همه چیز طبق برنامه با نسخه بتا پیش برود، نسخه بعدی دبیان ۱۴ با نام رمز "Forky" نامزد اصلی برای پیش فرض شدن Solver3 است.

نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
linuxtnt
http://seilany.ir
——————————————————
⭐️حمایت از کانال
https://zarinp.al/learninghive.ir
https://daramet.com/hossein_seilani
Forwarded from Spark | اسپارک
⚡️ اولین دوره سمینارهای اسپارک با حمایت مرکز کارآفرینی دانشگاه صنعتی شریف

⚡️ همراه با حضور ١٢ شرکت مطرح تکنولوژی و برگزاری در تاریخ ٨ و ٩ شهریور به صورت مجازی

✈️ فرصت استثناییِ بهره‌مندی از تجارب مهندسین شرکت‌های دیوار 🔖، بازار🔖، ترب 🔖، یکتانت🔖، هم‌روش🔖، تپسل🔖، جاباما 🔖، تبدیل 🔖، رمزینکس🔖، گپیفای🔖، زرین‌پال🔖و اسمارتک🔖

⚡️امکان حضور در ١٢ ارائه و دو میزگرد همراه با گواهی رسمی حضور از طرف مرکز کارآفرینی شریف، ارسال رزومه برای تمامی حامیان و فرصت استخدام در شرکت‌ها تنها با پرداخت ١٠٠ هزار تومان

✏️ فرصت رو از دست نده و همین حالا ثبت‌نام کن:
🔗 ce-spark.com

👤 در صورت وجود هرگونه سوال، با اکانت پشتیبانی به آدرس @CE_Spark_Support در ارتباط باشید.

⚡️ اسپارک؛ جرقه‌ی ارتباط با صنعت

🔗   LinkedIn  ◽️ 🌐 Instagram
🔗 @ce_spark◽️ ✏️ Register Now
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️ اولین دوره سمینارهای اسپارک با حمایت مرکز کارآفرینی دانشگاه صنعتی شریف

🔹 همراه با حضور ١٢ شرکت مطرح تکنولوژی و برگزاری در تاریخ ٨ و ٩ شهریور به صورت مجازی

🔹 فرصت استثناییِ بهره‌مندی از تجارب مهندسین شرکت‌های دیوار 🔖، بازار🔖، ترب 🔖، یکتانت🔖، هم‌روش🔖، تپسل🔖، جاباما 🔖، تبدیل 🔖، رمزینکس🔖، گپیفای🔖، زرین‌پال🔖و اسمارتک🔖

🔹امکان حضور در ١٢ ارائه و دو میزگرد همراه با گواهی رسمی حضور از طرف مرکز کارآفرینی شریف، ارسال رزومه برای تمامی حامیان و فرصت استخدام در شرکت‌ها تنها با پرداخت ١٠٠ هزار تومان .هدف اصلی این سمینار آشنا کردن دانشجوها با فاز صنعتی مشاغل کامپیوتری و چالش‌های اون هست

🔹 فرصت رو از دست نده و همین حالا ثبت‌نام کن:
🔗 ce-spark.com

👤 در صورت وجود هرگونه سوال، با اکانت پشتیبانی به آدرس @CE_Spark_Support در ارتباط باشید.

⚡️ اسپارک؛ جرقه‌ی ارتباط با صنعت

🔗   LinkedIn  ◽️ 🌐 Instagram
🔗 @ce_spark◽️ ✏️ Register Now
Analyzing E2E Bot
Twitter Space
x.com/i/spaces/1OdKrXdDgweJX

اسپیس توییتر با میزبانی یاشو و صحبت‌های یاشا (پسر)، محمد جرجندی، صفا صفری و سایر دوستان در رابطه با ربات جدید ناشناس:

#note #news
@amiria703_channel
Forwarded from کداکسپلور | CodeExplore (تبلیغات 📢)
هرماه، تو این کانال به صورت اشتراکی، اکانت chat gpt تهیه میکنم و با دوستایی که مایل باشن، به صورت اشتراکی با هم هزینه اون اکانت رو پرداخت می‌کنیم


این یه فرصت خوب، برای کاهش هزینه هامون و تهیه اکانت chat gpt plus هست


از اونجایی که شرکت open ai محدودیتی تو ورود به اکانت chat gpt نگذاشته، این یه راه خیلی خوب برای کاهش هزینه هامونه😍

اگه دوست دارید تو این کامیونیتی باشید و با هزینه خیلی کم، اکانت gpt plus داشته باشید،‌ تو اینجا منتظرتونیم👇

https://news.1rj.ru/str/+T4cO7OlORGc1Zjc0
Forwarded from AndroPX
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
💎 آپلود فایل توی باکت S3 در node.js 💎

امروز میخوام در مورد یکی از موضوعات پرکاربرد و جذاب در دنیای Node.js صحبت کنم: آپلود فایل با استفاده از باکت S3! 🎉

📦 چی هست این S3 و چرا باید ازش استفاده کنیم؟
باید بدونید S3 (Simple Storage Service) یکی از سرویس‌های معروف و محبوب آمازون وب سرویس (AWS) هست که به شما اجازه میده فایل‌هاتون رو روی فضای ابری ذخیره کنید. 🤓 این سرویس به خاطر قابلیت‌های زیادی مثل مقیاس‌پذیری بالا، امنیت و سرعت زیادش خیلی طرفدار داره.

فرض کن یه پروژه داری که توش کلی فایل (مثل عکس، ویدیو یا حتی فایل‌های بزرگ) باید ذخیره بشه. به جای اینکه این فایل‌ها رو روی سرور خودت نگه داری و مدام نگران فضای ذخیره‌سازی باشی، می‌تونی از S3 استفاده کنی تا همه چیز روی فضای ابری مدیریت بشه. 🚀

🎯 حالا چطور می‌تونیم با Node.js فایل آپلود کنیم؟
بریم سراغ اصل مطلب! 😊 برای آپلود فایل در S3 با Node.js چند تا مرحله باید انجام بدیم:

📥 نصب پکیج‌های مورد نیاز:
اول از همه باید پکیج‌های aws-sdk و multer رو نصب کنیم. aws-sdk کتابخانه‌ای هست که AWS رو به Node.js متصل می‌کنه و multer هم برای مدیریت فایل‌های آپلودی استفاده می‌شه.

npm install aws-sdk multer

کانفیگ AWS:
حالا باید کلاینت AWS رو کانفیگ کنیم. برای این کار نیاز به accessKeyId و secretAccessKey دارید که باید از کنسول AWS بگیرید.

const AWS = require('aws-sdk');

AWS.config.update({
    accessKeyId: 'YOUR_ACCESS_KEY_ID',
    secretAccessKey: 'YOUR_SECRET_ACCESS_KEY',
    region: 'YOUR_REGION'
});

const s3 = new AWS.S3();

🔧 ساختن تابع آپلود:
حالا بیایم یه تابع ساده برای آپلود فایل بسازیم. این تابع فایل رو از کلاینت میگیره و به S3 آپلود می‌کنه:

const uploadFile = (file) => {
    const params = {
        Bucket: 'YOUR_BUCKET_NAME',
        Key: file.originalname,
        Body: file.buffer
    };

    return s3.upload(params).promise();
};

🧾 مدیریت فایل‌های آپلودی:
از multer برای گرفتن فایل‌ها از فرم استفاده می‌کنیم. به این شکل که فایل‌ها به عنوان buffer به تابع uploadFile پاس داده می‌شن:

const multer = require('multer');
const upload = multer();

app.post('/upload', upload.single('file'), async (req, res) => {
    try {
        const result = await uploadFile(req.file);
        res.send(result);
    } catch (error) {
        res.status(500).send(error);
    }
});

توی این کد، وقتی کاربر فایلی رو آپلود می‌کنه، ما از طریق multer اون فایل رو می‌گیریم و با استفاده از aws-sdk اونو به S3 ارسال می‌کنیم.

💡 نکات اضافی و پیشنهادها

🛡 ایمن‌سازی: حواستون باشه که accessKeyId و secretAccessKey رو توی کد قرار ندید. به جای اون‌ها از متغیرهای محیطی (environment variables) استفاده کنید.

📟 استفاده از presigned URLs: اگه می‌خواید کاربر مستقیماً از کلاینت خودش فایل رو آپلود کنه، می‌تونید از presigned URLs استفاده کنید که امنیت و عملکرد بهتری داره.

🔬 مانیتورینگ و مدیریت فایل‌ها: با استفاده از امکاناتی مثل CloudWatch یا S3 Events می‌تونید عملیات‌های مختلف روی فایل‌ها رو مانیتور کنید.
امیدوارم این آموزش به دردتون بخوره و بتونید به راحتی فایل‌هاتون رو با Node.js توی S3 آپلود کنید.


امید وارم براتون مفید بوده باشه :) ❤️

#node.js #s3 #aws #clound_storage

@ninja_learn_ir
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
یک پروژه ربات تلگرام دارم که دیتای زیادی ذخیره نمیکنه اما مدام در حال اپدیت دیتا هستش، برای همین ترجیح میدم از ردیس استفاده کنم برای ذخیره داده هام

یک کد سمپل با gpt زدم جنریت بشه با ترکیب pydantic و redis ، چقدر ناز میشن این دوتا کنار هم، رسما انگار دیتابیس داری و اونقدر key, value بودن ردیس اذیتت نمیکنه و به صورت ساختار مند میتونی ذخیره کنی

@SEYED_BAX
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from کداکسپلور | CodeExplore (ᎷᎪᎻᎠᏆ)
🛡️ میدونستی امن ترین سیستم عامل دنیا چیه...؟!

▪️وقتی صحبت از امنیت سیستم عامل‌ها میشه، همه دنبال اون سیستمی هستیم که بتونه جلوی هر گونه تهدید سایبری رو بگیره.

▪️حالا اگه بهت بگم که یه سیستم عامل هست که از بقیه خیلی جلوتره و حتی توسط افراد حرفه‌ای و امنیتی توصیه میشه، چقدر کنجکاو میشی؟ اون سیستم عامل، Qubes OS نام داره.

▪️سیستم عامل Qubes OS بر پایه هسته لینوکس ساخته شده، اما خودش به عنوان یک توزیع مستقل در نظر گرفته می‌شود و مستقیماً از توزیع خاصی مشتق نشده و طوری طراحی شده که حتی اگه یه بخشش تحت حمله قرار بگیره، بقیه سیستم و اطلاعاتت امن بمونه. این کار رو با استفاده از تکنولوژی مجازی‌سازی انجام میده.

▪️یعنی هر بخش یا اپلیکیشن توی یه محیط جداگانه (VM) اجرا میشه. اینطوری، هیچ وقت نمی‌ذاره یه مشکل کوچیک به یه فاجعه بزرگ تبدیل بشه. اگه به امنیتت اهمیت میدی، Qubes OS می‌تونه بهترین انتخابت باشه.

☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM