Re: move / migrate files to and from mediadb
Niels Dettenbach <[email protected]> Fri, 12 Jul 2013 18:21:07 +0200
| Newsgroups | gmane.comp.cms.zms.devel |
|---|---|
| Message-ID | <[email protected]> |
------ZI5M3OU0L78GGBV91AKH4BXB2HTDWQ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "Dr. Frank Hoffmann" <[email protected]> schrieb: >you mixed ZODB-blobfiles and mediafolder-files in a ZMS client? No, ZMS is "mixing" that as not all blob (file) fields in special objects are saved in the mediadb if mediadb is existing. This seems not the case for any image blob types, but for file blob types. I.e.: If i declare a file field in a special object and upload a file by ZMI it got stored in the mediadb (filesystem). If i set the file (file object) by attr() or setObjProperty() it got stored NOT in the mediadb (in the ZODB instead, so i have now a "mixed" storage). If i do that with image fields all blobs/files are stored in the mediadb as configured. > context.localfs_write(filepath,blob.getData()) Ahh, Ok, this means i have to use localfs directly (without any method or "wrapper" of mediadb object / class). Will try that! Thank you and have a nice weekend, Niels Dettenbach. -- Niels Dettenbach Syndicat IT&Internet http://www.syndicat.com ------ZI5M3OU0L78GGBV91AKH4BXB2HTDWQ Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> </head> <body style="background-color: #fff;"> <span style="display:none"> </span> <!--~-|**|PrettyHtmlStartT|**|-~--> <div id="ygrp-mlmsg" style="position:relative;"> <div id="ygrp-msg" style="z-index: 1;"> <!--~-|**|PrettyHtmlEndT|**|-~--> <div id="ygrp-text" > <p><div class="gmail_quote"><br> <br> "Dr. Frank Hoffmann" <[email protected]> schrieb:<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204);"> <span> </span> <div id="ygrp-text"> <p>Hello,<br> I am not sure wether I did understand the question right: <br> you mixed ZODB-blobfiles and mediafolder-files in a ZMS client?<br> Usually setObjProperty/attr() writes into the declared file system folder -<br> provided the mediafolder option is active.<br> Deactivating the mediafolder option re-imports all the external files into the<br> zodb blobs.<br> 'Packing' delets all the mediafolder files, which have no corresponding ZMS<br> object.<br> <br> The following code snippets might give you some inspriration for your own<br> extensions:<br> <br> # ----------------------------------------------------------<br> # Save Media to File-System<br> # ----------------------------------------------------------<br> blob = context.FileFromData(file,file.filename)<br> inst_home = context.Control_Panel.getINSTANCE_HOME()<br> path = zmscontext.attr('mediafolder').replace('$INSTANCE_HOME',inst_home)<br> filename = blob.getFilename()<br> filepath = path+'/'+filename<br> context.localfs_write(filepath,blob.getData())<br> <br> # ----------------------------------------------------------<br> # Read Media from File-System<br> # ----------------------------------------------------------<br> inst_home = context.Control_Panel.getINSTANCE_HOME()<br> path = zmscontext.attr('mediafolder').replace('$INSTANCE_HOME',inst_home)<br> filepath = path+'/'+filename<br> return context.localfs_read(filepath)<br> <br> Best Regards<br> fh, moderator<br> <br> </p> </div> <!-- end group email --> </blockquote></div><br clear="all">"Dr. Frank Hoffmann" <[email protected]> schrieb:<br> >you mixed ZODB-blobfiles and mediafolder-files in a ZMS client?<br> No,<br> ZMS is "mixing" that as not all blob (file) fields in special objects are saved in the mediadb if mediadb is existing.<br> <br> This seems not the case for any image blob types, but for file blob types. <br> <br> I.e.:<br> <br> If i declare a file field in a special object and upload a file by ZMI it got stored in the mediadb (filesystem). <br> <br> If i set the file (file object) by attr() or setObjProperty() it got stored NOT in the mediadb (in the ZODB instead, so i have now a "mixed" storage). If i do that with image fields all blobs/files are stored in the mediadb as configured.<br> <br> > context.localfs_write(filepath,blob.getData())<br> Ahh,<br> Ok,<br> this means i have to use localfs directly (without any method or "wrapper" of mediadb object / class).<br> <br> Will try that!<br> <br> Thank you and have a nice weekend,<br> <br> <br> Niels Dettenbach.<br> <br> -- <br> Niels Dettenbach<br> Syndicat IT&Internet<br> <a href="http://www.syndicat.com">http://www.syndicat.com</a></p> </div> <!--~-|**|PrettyHtmlStart|**|-~--> <div style="color: #fff; height: 0;">__._,_.___</div> <table cellspacing=4px style="margin-top: 20px; margin-bottom: 10px;"> <tbody> <tr> <td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA " > <a style="text-decoration: none; color: #2D50FD" href="http://groups.yahoo.com/group/zms-developers/post;_ylc=X3oDMTJwc2Jsa2ptBF9TAzk3MzU5NzE0BGdycElkAzg0NzA4MjEEZ3Jwc3BJZAMxNzA3MjgxOTQyBG1zZ0lkAzM4NTUEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMzczNjQ2MDkx?act=reply&messageNum=3855">Reply via web post</a> </td> <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA; " > <a href="mailto:[email protected]?subject=Re%3A%20%5Bzms-developers%5D%20move%20%2F%20migrate%20files%20to%20and%20from%20mediadb" style="text-decoration: none; color: #2D50FD;"> Reply to sender </a> </td> <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA; "> <a href="mailto:[email protected]?subject=Re%3A%20%5Bzms-developers%5D%20move%20%2F%20migrate%20files%20to%20and%20from%20mediadb" style="text-decoration: none; color: #2D50FD"> Reply to group </a> </td> <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA; " > <a href="http://groups.yahoo.com/group/zms-developers/post;_ylc=X3oDMTJlMHVhaGRnBF9TAzk3MzU5NzE0BGdycElkAzg0NzA4MjEEZ3Jwc3BJZAMxNzA3MjgxOTQyBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTM3MzY0NjA5MQ--" style="text-decoration: none; color: #2D50FD">Start a New Topic</a> </td> <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #2D50FD; background-color: #F2F2F2; border: 1px solid #EAEAEA; " > <a href="http://groups.yahoo.com/group/zms-developers/message/3853;_ylc=X3oDMTM0MGpzbTFkBF9TAzk3MzU5NzE0BGdycElkAzg0NzA4MjEEZ3Jwc3BJZAMxNzA3MjgxOTQyBG1zZ0lkAzM4NTUEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMzczNjQ2MDkxBHRwY0lkAzM4NTM-" style="text-decoration: none; color: #2D50FD;">Messages in this topic</a> (3) </td> </tr> </tbody> </table> <!------- Start Nav Bar ------> <!-- |**|begin egp html banner|**| --> <div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;"> <span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; ">Recent Activity:</span> <ul style="list-style-type: none; margin: 0; padding: 0; display: inline;"> </ul> <div style="clear: both; padding-top: 2px; color: #1e66ae;"> <a href="http://groups.yahoo.com/group/zms-developers;_ylc=X3oDMTJlNm9rMzVjBF9TAzk3MzU5NzE0BGdycElkAzg0NzA4MjEEZ3Jwc3BJZAMxNzA3MjgxOTQyBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTM3MzY0NjA5MQ--" style="text-decoration: none;">Visit Your Group</a> </div> </div> <div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;"> <a href="http://groups.yahoo.com/;_ylc=X3oDMTJkZGl1bmoxBF9TAzk3NDc2NTkwBGdycElkAzg0NzA4MjEEZ3Jwc3BJZAMxNzA3MjgxOTQyBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMzczNjQ2MDkx" style="float: left;"><img src="http://l.yimg.com/a/i/us/yg/logo/us.gif" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a> <div style="color: #747575; float: right;">Switch to: <a href="mailto:[email protected]?subject=Change Delivery Format: Traditional" style="text-decoration: none;">Text-Only</a>, <a href="mailto:[email protected]?subject=Email Delivery: Digest" class="margin-rt" style="text-decoration: none;">Daily Digest</a> • <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> • <a href="http://docs.yahoo.com/info/terms/" style="text-decoration: none;">Terms of Use</a> • <a href="mailto:[email protected]?subject=Feedback on the redesigned individual mail v1" style="text-decoration: none;">Send us Feedback </a></div> </div> <!-- |**|end egp html banner|**| --> </div> <!-- ygrp-msg --> <!-- Sponsor --> <!-- |**|begin egp html banner|**| --> <div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;"> <!-- Start Recommendations --> <div id="ygrp-reco"> </div> <!-- End Recommendations --> </div> <!-- |**|end egp html banner|**| --> <div style="clear:both; color: #FFF; font-size:1px;">.</div> </div> <img src="http://geo.yahoo.com/serv?s=97359714/grpId=8470821/grpspId=1707281942/msgId=3855/stime=1373646091" width="1" height="1"> <br> <div style="color: #fff; height: 0;">__,_._,___</div> <!--~-|**|PrettyHtmlEnd|**|-~--> </body> <!--~-|**|PrettyHtmlStart|**|-~--> <head> <style type="text/css"> <!-- #ygrp-mkp { border: 1px solid #d8d8d8; font-family: Arial; margin: 10px 0; padding: 0 10px; } #ygrp-mkp hr { border: 1px solid #d8d8d8; } #ygrp-mkp #hd { color: #628c2a; font-size: 85%; font-weight: 700; line-height: 122%; margin: 10px 0; } #ygrp-mkp #ads { margin-bottom: 10px; } #ygrp-mkp .ad { padding: 0 0; } #ygrp-mkp .ad p { margin: 0; } #ygrp-mkp .ad a { color: #0000ff; text-decoration: none; } #ygrp-sponsor #ygrp-lc { font-family: Arial; } #ygrp-sponsor #ygrp-lc #hd { margin: 10px 0px; font-weight: 700; font-size: 78%; line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad { margin-bottom: 10px; padding: 0 0; } #actions { font-family: Verdana; font-size: 11px; padding: 10px 0; } #activity { background-color: #e0ecee; float: left; font-family: Verdana; font-size: 10px; padding: 10px; } #activity span { font-weight: 700; } #activity span:first-child { text-transform: uppercase; } #activity span a { color: #5085b6; text-decoration: none; } #activity span span { color: #ff7900; } #activity span .underline { text-decoration: underline; } .attach { clear: both; display: table; font-family: Arial; font-size: 12px; padding: 10px 0; width: 400px; } .attach div a { text-decoration: none; } .attach img { border: none; padding-right: 5px; } .attach label { display: block; margin-bottom: 5px; } .attach label a { text-decoration: none; } blockquote { margin: 0 0 0 4px; } .bold { font-family: Arial; font-size: 13px; font-weight: 700; } .bold a { text-decoration: none; } dd.last p a { font-family: Verdana; font-weight: 700; } dd.last p span { margin-right: 10px; font-family: Verdana; font-weight: 700; } dd.last p span.yshortcuts { margin-right: 0; } div.attach-table div div a { text-decoration: none; } div.attach-table { width: 400px; } div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited { text-decoration: none; } div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited { text-decoration: none; } div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts { font-family: Verdana; font-size: 10px; font-weight: normal; } .green { color: #628c2a; } .MsoNormal { margin: 0 0 0 0; } o { font-size: 0; } #photos div { float: left; width: 72px; } #photos div div { border: 1px solid #666666; height: 62px; overflow: hidden; width: 62px; } #photos div label { color: #666666; font-size: 10px; overflow: hidden; text-align: center; white-space: nowrap; width: 64px; } #reco-category { font-size: 77%; } #reco-desc { font-size: 77%; } .replbq { margin: 4px; } #ygrp-actbar div a:first-child { /* border-right: 0px solid #000;*/ margin-right: 2px; padding-right: 5px; } #ygrp-mlmsg { font-size: 13px; font-family: Arial, helvetica,clean, sans-serif; *font-size: small; *font: x-small; } #ygrp-mlmsg table { font-size: inherit; font: 100%; } #ygrp-mlmsg select, input, textarea { font: 99% Arial, Helvetica, clean, sans-serif; } #ygrp-mlmsg pre, code { font:115% monospace; *font-size:100%; } #ygrp-mlmsg * { line-height: 1.22em; } #ygrp-mlmsg #logo { padding-bottom: 10px; } #ygrp-msg p a { font-family: Verdana; } #ygrp-msg p#attach-count span { color: #1E66AE; font-weight: 700; } #ygrp-reco #reco-head { color: #ff7900; font-weight: 700; } #ygrp-reco { margin-bottom: 20px; padding: 0px; } #ygrp-sponsor #ov li a { font-size: 130%; text-decoration: none; } #ygrp-sponsor #ov li { font-size: 77%; list-style-type: square; padding: 6px 0; } #ygrp-sponsor #ov ul { margin: 0; padding: 0 0 0 8px; } #ygrp-text { font-family: Georgia; } #ygrp-text p { margin: 0 0 1em 0; } #ygrp-text tt { font-size: 120%; } #ygrp-vital ul li:last-child { border-right: none !important; } --> </style> </head> <!--~-|**|PrettyHtmlEnd|**|-~--> </html> <!-- end group email --> ------ZI5M3OU0L78GGBV91AKH4BXB2HTDWQ--