2013-02-08 3 views
1

이 질문 중 일부는 이미 another stackoverflow question으로 해결되었지만 모든 것을 정리하지는 못합니다.blobstorage ZEO 서버에서 plone.app.imaging 크기가 조절 된 BLOB를 제거하는 방법은 무엇입니까?

단계는 :

  • 가 blobstorage가
  • 보고 그 영상의 스케일링 버전 도면을 열 하나 파일이 있는지 참조 화상 필드 문서를 만들 blobstorage는 이제 두 개의 개의 파일, 이미지 및 크기 조정 된 이미지를 가지고 있습니다.
  • 하나는 blobstorage에서이 축소 된 이미지를 제거 할 수있는 방법 : 전자 기타 질문 0일
  • zeopack 여전히 blobstorage에 한 방울,

그래서 질문은 조정 된 이미지가있는 것을 볼 수 ?

zeopack 두 번 성공하지 못했습니다. 크기가 조정 된 blob은 여전히 ​​주위에 있습니다.

UPDATE : 지적vangheem로, 그 전형 Image 콘텐츠 유형에 대한 발생하지 않습니다. 그래도 이미지 필드가있는 민첩성 기반 콘텐츠 형식의 경우와 마찬가지로이 질문은 유효합니다.

저울은 문서를 제거 할 때만 사용됩니다.이 경우는 제 유스 케이스가 아니므로 이미지를 제거하고 싶습니다 (이미지 크레디트가 만료되어 이미지를 더 이상 볼 수 없음).

+0

당신이 원하는 것이 이유 :

은 실제로 plone.scale 주석을 제거해야 비늘을 제거하려면? 크기 조정 된 이미지는 plone 전체에서 사용되며 다시 생성됩니다. – vangheem

+0

vangheem : 우리 웹 사이트에서는 특정 만료 날짜가있는 이미지를 사용합니다 (getty 정도에서 구입합니다). 따라서 ** 만료일이 지나면 그 이미지는 삭제되어야하며 분명히 스케일 된 이미지는 더 이상 필요 없으며 어느 곳에서도 나타날 것입니다. – gforcada

+0

Martijn : 방금 문서의 이미지 필드를 삭제했습니다. 어쩌면 그게 이미지 필드를 삭제하는 올바른 방법이 아니겠습니까? 단계에 관해서는, 그들은 질문에 대해 정확히 말했듯이, 이미지를 만들고, 추가하고, 두 개의 얼룩이 있는지 확인한 다음 이미지를 삭제합니다. 이 모든 후 (문서가 아직 남아 있습니다) 나는 포장을합니다. – gforcada

답변

0

발견!

# assume 'document' is a Dexterity-based content type that has a NamedBlobImage field 
from zope.annotation.interfaces import IAnnotations 
annotations = IAnnotations(document) 
if 'plone.scale' in annotations: 
    del annotations['plone.scale'] 
if getattr(document, 'image', None) is not None and document.image is not None: 
    del document.image 
    document.reindexObject() 
2

콘텐츠 항목을 삭제하면 축척도 삭제해야합니다.

난 그냥 plone 4.2.4에서 테스트.

  1. 2 개 blobstorage 파일이 생성 된 것을 볼, 이미지를 추가 할 새 사이트를 만들 플론 (Plone)
  2. 을 시작
  3. 기존 blobstorage 및 filestorage
  4. 을 삭제 : 여기 내 단계이었다. 두 파일 모두 0 일 데이터베이스를 팩 실행 취소 지원
  5. 에 대한 blobstorage 아직까지
  6. 이미지를 삭제 생성 된 하나의 스케일, 원래의 또 다른 하나, 두 파일은 이제 blobstorage에서 제거됩니다

모든 것이 제대로 작동하는 것 같습니다.

귀하의 게시물에 귀하가 문서를 작성 중이라고 언급하셨습니다. 뉴스 항목을 의미하는 경우 해당 이미지는 BLOB 저장소에 저장되지 않습니다.

이미지 필드가있는 사용자 지정 콘텐츠 형식이 있고 해당 필드에서 생성 된 이미지 필드와 축척을 삭제하려고하지만 전체 형식을 삭제하지 않으려는 경우 이제 다음을 수행해야합니다. 수동으로 저울을 삭제하십시오.나는 그것이 다음과 같을 것이라고 생각한다 :

del doc.__blob_scales['image']['preview'] 
+0

그것은 행동에서 유래하는 NamedBlobImage가있는 사용자 정의 손재주 콘텐츠 유형입니다. 그러나''hasattr (article, blobScalesAttr)''을하는 것은 실패합니다. 나는 IAnnotations (article) [ 'plone.scale']''을 사용하여 주석에 비늘을 보았습니다. 왜냐하면 기민성 기반 콘텐츠 유형이 있기 때문입니다. – gforcada

+0

이''__blob_scales''는 Archetypes 콘텐츠 유형에만 있지만 Dexterity에는 없습니다 (생성 및''Image'' 콘텐츠 유형에는 포함되어 있지만 이미지 필드가있는 TTW Dexterity 내용 유형은 없습니다) – gforcada