أفضل عملية للضغط التلقائي لملفات MP3 المتعددة

StackOverflow https://stackoverflow.com/questions/278540

  •  07-07-2019
  •  | 
  •  

سؤال

لدي مشروع يتطلب عملية معقدة إلى حد ما وأريد التأكد من أنني أعرف أفضل طريقة للقيام بذلك.أنا أستخدم ASP.net C# مع Adobe Flex 3.خادم التطبيق هو Mosso (خادم سحابي) وخادم تخزين الملفات هو Amazon S3.يمكن الاطلاع على الموقع الحالي في NoiseTrade.com

ولست بحاجة للقيام بذلك:

  • اسمح للمستخدمين بتحميل ملفات MP3 إلى ألبوم "Widget"
  • بعد أن قام المستخدم بتحميل ألبومه/عنصر واجهة المستخدم ، أحتاج إلى تعبير MP3 تلقائيًا (لتنزيل المستخدمين الآخرين) وتحميل الرمز البريدي مع مسارات MP3 إلى Amazon S3

لقد قمت بالفعل بهذا العمل بالفعل (باستخدام المعالجة من جانب العميل في Flex) ولكن هذا لم يعد يعمل بسبب تحديث Adobe flash 10 "الأمان".لذا فأنا الآن بحاجة إلى تنفيذ هذا من جانب الخادم.

الطريقة التي أفكر بها للقيام بذلك هي:

  • قم بتخزين MP3 في مجلد مؤقت على خادم التطبيق
  • عندما يقوم الفنان "بنشر" بإنشاء ZIP من الملفات في هذا المجلد باستخدام مكتبة AC#
  • ابدأ عملية تحميل Amazon S3 (zip و mp3s) وإرسال بريد إلكتروني إلى المستخدم عند الانتهاء (بالإضافة إلى حذف المجلد المؤقت)

المشكلة الرئيسية التي أراها في هذا الأسلوب هي أنه إذا قام المستخدم بحذف مسار أو إضافته لاحقًا، فسأضطر إلى تحديث الملف المضغوط ولكن الملفات المؤقتة لن تكون موجودة بعد الآن.

أنا في حيرة من أمري بشأن أفضل طريقة للقيام بذلك وسأكون ممتنًا لأي نصيحة قد تكون لديكم.

شكرًا!

هل كانت مفيدة؟

المحلول

إن الجزء المتعلق بتحديث الملف المضغوط ولكن عدم وجود الملفات المؤقتة إذا قام المستخدم بإضافة مسار أو إزالته يقودني إلى الشك في أنك تريد إنشاء ملفات مضغوطة تحتوي على مسارات متعددة، وربما ألبومات كاملة.إذا كان هذا غير صحيح وكنت تقوم فقط بوضع ملف mp3 واحد في كل ملف مضغوط، فإن StingyJack على حق ومن المحتمل أن ينتهي بك الأمر إلى إنشاء الملف (قليلاً) أكبر بدلاً من أن يكون أصغر حجمًا عن طريق سحابه.

إذا كان تفسيري صحيحا، فأنت محظوظ.تحتوي أدوات الرمز البريدي لسطر الأوامر في كثير من الأحيان على علامات يمكن استخدامها لإضافة ملفات إلى أرشيف مضغوط موجود أو حذفها.لم تحدد المكتبة أو الطريقة الأخرى التي تستخدمها لإجراء عملية الضغط، لكنني أتوقع أنها ربما تتمتع بهذه الإمكانية أيضًا.

نصائح أخرى

يتم ضغط ملفات MP3.لماذا تهتم بضغطهم؟

أود أن أقول إنه ليس من الضروري ضغط تنسيق ملف مضغوط، فكل ما عليك فعله هو الحصول على تخفيض بنسبة خمسة بالمائة في حجم الملف، زيادة أو نقصانًا قليلاً.لا تعد ملفات MP3 مضغوطة بطبيعتها، فقد قامت بالفعل بضغط معظم البيانات الممكنة.

دوت نت زيب يمكنه ضغط الملفات من C#/ASP.NET.أنا أتفق مع الملصقات السابقة فيما يتعلق بقابلية ضغط ملفات MP3.سوف يقوم DotNetZip تلقائيًا يتخطى الضغط على ملفات MP3، وتخزين الملف فقط لهذا السبب.قد يكون من المثير للاهتمام استخدام ملف مضغوط كحاوية تعبئة/أرشيف، بصرف النظر عن الضغط.

إذا قمت بتغيير الملف المضغوط لاحقًا (يضيف المستخدم مسارًا)، فيمكنك الحصول على ملف .zip من S3، وتحديثه فقط.يمكن لـ DotNetZip تحديث الملفات المضغوطة أيضًا.ولكن في هذه الحالة سيتعين عليك دفع تكلفة النقل من وإلى S3.

يمكن لـ DotNetZip القيام بكل هذا من خلال معالجة الملفات المضغوطة في الذاكرة - على الرغم من أن ذلك قد لا يكون ممكنًا بالنسبة للأرشيفات الكبيرة التي تحتوي على الكثير من ملفات MP3 والكثير من المستخدمين المتزامنين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top