Bonjour,
Avec les versions actuels de CPS, il n'y a pas besoin de remonter au
datamodel pour importer les contenus. La méthode edit du doc fait ça
plus simplement et plus complétement (pas besoin de réindexer, par
exemple). Il faut lui passer un dico avec les différentes valeurs. Le
script de Cédric devient un truc du genre :
wTool.invokeFactoryFor(ws, 'File', fileId)
logStringBuffer.append(' created...')
document = getattr(ws, fileId)
documentRepository = document.getContent()
#CMA Getting file data
#CMA Be careful to open the file in binary mode ;-)
diskFile = open(os.path.join(path, objectName), 'rb')
ofsFile = File('file', '%s.doc'%(fileId), diskFile)
diskFile.close()
dico = {'file': ofsFile, 'Title': objectName }
documentRepository.edit(dico)
logStringBuffer.append(' uploaded...')
#CMA Reindexing file
documentRepository.reindexObject()
logStringBuffer.append(' reindexed...')
Il faut aussi faire attention à éviter de mettre trop de document dans
un même folder (pas plus d'une centaine) pour des questions de
performance. Il faut donc que ton script génère une arborescence en
créant selon le même principe des workspaces ou des sections.
En pièce jointe un script qui crée des docs à partir de lignes d'un
fichier csv en organisant une arborescence par année/mois/domaine. Il y
a en plus une gestion de transaction pour éviter de consommer trop de
mémoire.
Bon courage
Pierre Maris
Architecte
Capgemini Est
04 72 21 31 29
ALBAR, Jean-victor (CAP-GEMINI) a écrit :
Bonjour Cédric,
merci beaucoup, c'est super sympa.
J'essai de comprendre et je fais un test
et... je te recontacte si soucis...
Maintenant que j'ai l'import, il me reste
plus qu'a trouver comment faire l'export (il me faut pouvoir restituer
tous les documents mis sous CPS).
@Pierre Maris : oui bien sur pour de l'aide
et 1 script je suis tout a fait pret à patienter ;-)
Cordialement,
JVA
Bonsoir,
Comme convenu, voici le script que
nous utilisions en External Method dans la ZMI pour réaliser l'import
de fichiers en ZODB dans des Workspaces bien définis. Il se nomme
"integrateFormations.py".
Ce Script permet d'importer les
fichiers situés dans des répertoires du fileSystem vers des Workspaces
CPS:
-
INSTANCE_HOME/Products/Tipi/Formations -->
portal.workspaces.offre_formation
-
INSTANCE_HOME/Products/Tipi/Fiches -->
portal.workspaces.offre_formation.fiches_formation
Il commence par supprimer tous les
objets de type "CPS Proxy Document" présent dans le workspace de
destination.
Puis, il crée les nouveau objets
en calculant tout d'abord l'identifiant par rapport au workspace (de
façon à éviter de créer un objet de type "File" qui aurait le même ID,
ce qui ferait planter le script).
Ensuite, il crée un objet de type
"File".
Puis il lit le fichier du
fileSystem et l'ajoute à la structure (datamodel) de l'objet "File"
(avec un nom particulier, libre à toi de modifier le script pour
l'adapter bien sûr).
Il termine en committant le
datamodel et en réindexant l'objet "File" dans la ZODB.
A la fin de l'exécution,
l'external method renvoi une page Html comprenant la liste des fichiers
uploadés avec les opérations successives et enfin, le nombre de
fichiers uploadés.
L'idée, d'après ce que j'ai cru
comprendre du CPS Disk File Field, serait de conserver le même script
en prenant soin tout d'abord de modifier le schéma "File" dans
portal_schemas pour y faire intervenir un champ de type "CPS Disk File
Field" à la place du champs de type "File". Le mieux serait même de
créer un nouveau type, basé sur un nouveau schéma, mais l'explication
par mail risque d'être assez longue.
Essayes déjà çà pour voir.
Cordialement
Cédric
-----
Original Message -----
Sent:
Tuesday, January 23, 2007 5:06 PM
Subject:
RE: [CPS-users-fr] Stockage de documents Office
Re Cédric et la
liste,
pour répondre à tes questions, il
va y avoir des documents en rubrique qui eux ne bougeront pas (normal)
et la gande majorité des documents en espace de travail qui eux devront
gerer le versionning car en évolution constante (je dirais 40%
statiques et 60% en espace de travail).
Nous avons
besoin d'une 1ere initialisation de l'outil avec les 2000 documents (à
n'executer qu'une fois) et, si on n'utilise pas le Disk File Field, un
script d'exportation de tous les documents vers un FS (nous devons etre
capables de restituer tous les documents).
Si nous
utilisons le CPS Disk File Field, à priori nous n'avons pas besoin de
l'exportation car nous aurons nos documents directement dans un
répertoire c'est ca ?
Avez vous des docs qui décrivent
comment configurer l'option CPS Disk
File Field ?
Comment
cela fonctionne t il (versionning ? Locks ? etc...).
Peut
on (et si oui comment ?) migrer notre base actuelle en CPS Disk File
Field ?
Je
vous remercie tous de votre aide.
JVA
Effectivement, je n'avais pas lu le mail d'Eric.
Comment fonctionne exactement le DiskFileField ?
Est-ce que quelqu'un as des exemples de mise en oeuvre,
s'il vous plaît ?
Je posterai ce soir les sources du script permettant la
création d'objet de type file à partir d'un répertoire du disque local
du serveur.
La volonté d'utiliser ce script serait pour initialiser le
réferentiel ou pour faire des aller retours clients / serveur ?
Notre script est écrit pour une utilisation avec les
fichiers présents sur le serveur dans le but de les mettre à
disposition dans des espaces collaboratifs en les stockant dans la
ZODB. Il conviendra de l'adapter à la situation présente.
Cordialement
| Date |
Tue, 23 Jan 2007
16:25:02 +0100 |
| Subject |
Re: [CPS-users-fr]
Stockage de documents Office |
Bonjour,
Bien d'accord que 15Go pour les données, ça commence à faire, surtout
que les index risque de peser presque autant!
Mais est-ce que, comme le suggérait Eric , l'utilisation d'un Disk File
Field n'est pas suffisante?
Pierre Maris
Architecte
Capgemini Est
04 72 21 31 29
06 83 56 59 33
cedric MARFIL a écrit :
>
> Je ne sais pas ce qu'en pense la communauté, mais
il me paraît raisonnable de trouver une solution de contournement à la
ZODB et une façon de stocker les fichiers sur le fileSystem. 15Go de
ZODB en volume, çà représente tout de même beaucoup (Sans compter qu'il
faudra monter une partition reiserfs sous Linux pour accepter que le
fichier Data.fs puisse faire une taille si importante).
> Il faut donc se pencher sur l'option ZFS_Path
peut-être, qui permet de stocker des fichiers sur le fileSystem
en référençant un chemin d'accès à la racine du repository. Peut-être
que ce mode de fonctionnement conviendrait.
> Que souhaites tu faire de ces documents à terme ?
Du versionning ? ou serait-ce un simple référentiel documentaire
partagé ?
>
>
| Date |
Tue, 23 Jan 2007
14:55:48 +0100 |
>
| Subject |
RE: [CPS-users-fr]
Stockage de documents Office |
> >
> > Re bonjour Cédric,
> > oui ce script m'interesse
beaucoup.
> > Je recherche à importer mes
documents dans l'outil et bien sur l'inverse (récupérer les documents
originaux en masse vers un file system).
> > La volumétrie des 2000 documents
représente environ 7Go (en sachant qu'a moyen terme il y aura environ
15Go de documents).
> >
> > Merci
> >
> > JVA
> >
> >
> > Re-Bonjour JV,
> > Nous avons pour notre part développé un
petit script permettant de faire un import de 100 fichiers au format
Word pour les intégrer dans la ZODB (parce que nous n'avions que 100
fichiers à importer, mais c'était une boucle qui marche pour n'importe
quel nombre de fichiers). Ce script one shot lit le fichier sur le
disque, crée un objet de type "File" (portal_type) et y attache le
fichier récupéré sur le fileSystem. Le fichier est lui-même sérialisé
dans la ZODB.
> > Peut-être cet import te conviendrait-il ?
> > Il est certainement possible de faire en
sorte de stocker les fichiers sur le fileSystem du serveur plutôt que
dans la ZODB. A toi de voir ce qui te convient le mieux. Quelle est la
volumétrie de tes 2000 fichiers en termes de Mo ?
> >
> > Cordialement
> > Cédric
> >
> >
| Date |
Tue, 23 Jan 2007
14:16:11 +0100 |
> >
| Subject |
RE: [CPS-users-fr]
Stockage de documents Office |
> > > Merci pour vos réponses.
> > >
> > > Je croyais que Nuxeo 5
n'etait pas encore dispo...
> > > Est-il stable ?
> > > Gere t il le versionning et
le "undo" ?
> > >
> > > La décision du choix de l'outil doit être
prise très rapidement.
> > > Si Nuxeo 5 n'est pas dispo dans les
semaines qui viennent, nous voulons rester sous CPS.
> > > La fonctionnalité d'import/export des
documents originaux est primordiale pour nous dans CPS.
> > > Est-elle possible actuellement ?
> > >
> > > Notre volumétrie est d'environ
2000 documents (principalement des documents word et Excel en espace de
travail collaboratif).
> > > Nous avons environ 100
utilisateurs succeptibles d'utiliser l'outil.
> > > Nous avons la version CPS
3.4 sous Windows 2003 (nous avons eu des soucis de configuration de CPS
sous Linux en juin 2006 et avons du migrer sur Windows pour les
résoudre).
> > > Notre objectif est
d'utiliser un produit simple (mais complet) ne necessitant pas ou peu
de developpement ni d'administration compliquée.
> > >
> > > Voila, vous savez tout :-)
> > >
> > > Encore merci de votre
aide....
> > >
> > > JVA
Bonjour,
> > >
> > >
Nous sommes en phase de test
de CPS 3.4 et nous nous posons quelques questions :
Nos besoins sont des besoins
de stockage de documents, de travail collaboratif, de versionning et de
flux de validation.
CPS répond à tous nos besoins
à part le fait que Zope/CPS soit un peu difficile à apprehender encore
pour nous (toute suggestion de documentations ou bouquins est la
bienvenue).
> > > Avez-vous testé Nuxeo 5, il doit vous
founir les mêmes fonctionnalités.
Nous avons 2 questions
primordiales :
1/ Peut-on importer en masse
nos documents office (word, Excel, Powerpoint, etc...) dans l'outil ?
Nous avons environ 2000
documents à importer sous CPS donc ca serait sympa de pouvoir les
importer en quelques clics.
> > > Nuxeo EP 5 offre des extensions pour
les navigateurs qui permettent d'importer en masse des documents via
drag and drop dans le browser.
2/ Notre impératif est la
sauvegarde des documents et la restitution de ceux ci.
Le stockage de ceux ci dans
la ZODB nous fait peur (en terme de gestion et de restitution).
Pouvons nous nous passer de
la ZODB pour laisser les documents stockés dans un file system (ou au
pire dans une base de données "ouverte") ?
Dans le cas d'un stockage
dans un file system, quid du versionning ?
CPS peut permettre un stockage des pièces jointes sur le FileSystem en
utilisant le type de field DiskFileField dans les documents.
> > >
> > > Pour Nuxeo EP5, le stockage est
effectué par default sur le filesystem pour les fichiers attachés.
> > >
> > > Pouvez-vous nous en dire plus sur la
volumétrie de l'instance que vous devez mettre en place (utilisateurs,
etc.).
> > >
> > >
> > > Bonne journée,
> > >
> > > EB.
> > >
> > > --
> > > Éric Barroca - Ex. VP of Operations -
+33 6 21 74 77 64
> > > Nuxeo EP 5: extensible, Java EE and
standards based ECM Platform !
This mail has originated outside your organization, either from an external partner or the Global Internet.
Keep this in mind if you answer this message.
This e-mail is intended only for the above addressee. It may contain privileged information.
If you are not the addressee you must not copy, distribute, disclose or use any of the information in it.
If you have received it in error please delete it and immediately notify the sender.
Security Notice: all e-mail, sent to or from this address, may be accessed by someone other than the recipient, for system management and security reasons. This access is controlled under Regulation of security reasons.
This access is controlled under Regulation of Investigatory Powers Act 2000, Lawful Business Practises.
This
message contains information that may be privileged or confidential and
is the property of the Capgemini Group. It is intended only for the
person to whom it is addressed. If you are not the intended recipient,
you are not authorized to read, print, retain, copy, disseminate,
distribute, or use this message or any part thereof. If you receive
this message in error, please notify the sender immediately and delete
all copies of this message.
|
This mail has originated outside your organization, either from an external partner or the Global Internet.
Keep this in mind if you answer this message.
This e-mail is intended only for the above addressee. It may contain privileged information.
If you are not the addressee you must not copy, distribute, disclose or use any of the information in it.
If you have received it in error please delete it and immediately notify the sender.
Security Notice: all e-mail, sent to or from this address, may be accessed by someone other than the recipient, for system management and security reasons. This access is controlled under Regulation of security reasons.
This access is controlled under Regulation of Investigatory Powers Act 2000, Lawful Business Practises.
This
message contains information that may be privileged or confidential and
is the property of the Capgemini Group. It is intended only for the
person to whom it is addressed. If you are not the intended recipient,
you are not authorized to read, print, retain, copy, disseminate,
distribute, or use this message or any part thereof. If you receive
this message in error, please notify the sender immediately and delete
all copies of this message.
|
_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>
This message
contains information that may be privileged or confidential and is the
property of the Capgemini Group. It is intended only for the person to
whom it is addressed. If you are not the intended recipient, you are
not authorized to read, print, retain, copy, disseminate, distribute,
or use this message or any part thereof. If you receive this message in
error, please notify the sender immediately and delete all copies of
this message.
|
This mail has originated outside your organization, either from an external partner or the Global Internet.
Keep this in mind if you answer this message.
This e-mail is intended only for the above addressee. It may contain privileged information.
If you are not the addressee you must not copy, distribute, disclose or use any of the information in it.
If you have received it in error please delete it and immediately notify the sender.
Security Notice: all e-mail, sent to or from this address, may be accessed by someone other than the recipient, for system management and security reasons. This access is controlled under Regulation of security reasons.
This access is controlled under Regulation of Investigatory Powers Act 2000, Lawful Business Practises.
This mail has originated outside your organization, either from an external partner or the Global Internet.
Keep this in mind if you answer this message.
This message
contains information that may be privileged or confidential and is the
property of the Capgemini Group. It is intended only for the person to
whom it is addressed. If you are not the intended recipient, you are
not authorized to read, print, retain, copy, disseminate, distribute,
or use this message or any part thereof. If you receive this message in
error, please notify the sender immediately and delete all copies of
this message.
|
This e-mail is intended only for the above addressee. It may contain privileged information.
If you are not the addressee you must not copy, distribute, disclose or use any of the information in it.
If you have received it in error please delete it and immediately notify the sender.
Security Notice: all e-mail, sent to or from this address, may be accessed by someone other than the recipient, for system management and security reasons. This access is controlled under Regulation of security reasons.
This access is controlled under Regulation of Investigatory Powers Act 2000, Lawful Business Practises.
_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>
|