SlideShare a Scribd company logo
1 of 33
T3CON12
                         Québec City




FILE ABSTRACTION LAYER
                                   1
AGENDA


 Introduction into File Abstraction
   current State in TYPO3
   goals and concepts




                                                 http://theplayunderground.com/images/Folder%20Stack.jpg
 The File Abstraction Layer in T YPO3 6.0
   influences on editors
   architecture
   FAL vs. DAM

 Developers Information: Customize FAL
   custom Drivers
   usage in Extensions
   extending FAL

                                             2
STEFFEN RITTER


 Germany, near Frankfurt

 Studied Computer Science

 Freelancer for T YPO3 Development

 T YPO3 since 2006
   Core Team Member
   Release Manager 4.7




                                      3
Current State,

INTRODUCTION   Goals,
               History,
               Concepts




                          4
INTRODUCTION: CURRENT STATE


 plain PHP functions ( fopen, is_dir, …)
 operating system restriction: Windows vs. Unix
 files in T YPO3 site root

 Usage  copied to uploads/
 thumbnails copied to typo3temp/

 obtains disk space
 replacing files dif ficult
 meta-data distributed


                                                   5
INTRODUCTION: GOALS


 omit superfluous copies
        reference files

 central meta-data management

 no direct file-system access

 external file-systems

 „DAM“ with core support


                                    6
INTRODUCTION: HISTORY AND FUTURE


 planned since years

 several attempts / refactorings

 huge task  DAM not core

 finally: BLE-project with planned integration in 4.7

 released with 6.0alpha1
   improvements and actions welcome


                                                         7
INTRODUCTION: CONCEPTS


 Resource      – element in file-system

 File          – real file in file -system

 Folder        – structuring unit of file -system
   Folder in local file-system, tag or album in Flickr


 ProcessedFile – variants
   References File




                                                          8
INTRODUCTION: CONCEPTS


 Storage      – unix: mount
   Mount-point definition
   Aggregation: Driver, Name, Path, „user-mount “


 Driver       – low -level interface
   php file-system calls
   WebDAV: PUT/GET/POST …




                                                     9
FILE ABSTRACTION     Changes for
                     Editors
      IN TYPO3 6.0




                               10
CHANGES FOR EDITORS: FILE MODULE




                                   11
CHANGES FOR EDITOR: IMAGES




                             12
CHANGES FOR EDITOR: HCI CHANGES




                                  13
CHANGES FOR EDITORS: UPLOADS




                               14
CHANGES FOR EDITORS: FILE-META DATA




                                  15
CHANGES FOR EDITORS: FILE-META DATA

 WITH MEDIA INSTALLED:

   „bridge to DAM“




                                  16
FILE ABSTRACTION     Architecture
      IN TYPO3 6.0




                                17
ARCHITECTURE: CLASS HIERARCHY

                Interface to code against




                Objects in memory



                In file-system
                                             18
ARCHITECTURE: PERSISTENCE


   File:            database    (sys_file)
   Folder:          transient
   Storage:         database    (sys_storage)
   FileReference:   database    (sys_file_reference)
   ProcessedFile:   database    (sys_file_processedfile)



 References in Database: [UID]
 Folder: [???]



                                                            19
ARCHITECTURE: IDENTIFY A RESOURCE

 4 dif ferent Identifier:
      Identifier
      Combined Identifier
      uid
      Sha1 (internal only)

 Identifier                               user_upload/Admin/test.html
    String, unique within Storage
    useless without storage

 Combined Identifier                      1:user_upload/Admin/test.html
    Extends identifier with Storage UID
    [StorageUid]:[Identifier]

 uid
    Indexed elements
    Database relations



                                                                         20
ARCHITECTURE: IDENTIFY A RESOURCE




           WAAAHH?



                                    21
ARCHITECTURE: IDENTIFY A RESOURCE

Which Identifier to use?

 Combined-Identifier:
   TypoScript,
   Hand over file to FAL
   manual references


 Uid
   internally (extensions, php, database)
   Whenever possible (better performance)




                                             22
ARCHITECTURE: IDENTIFY A RESOURCE

Gimmick / Backwards compatibilty: Legacy Files

 „Virtual Storage“
     uid: 0
     local-driver
     Root at TYPO3_site
     not indexed!

   Access all files:
       0:uploads/pics/bla.jpg
       0:typo3conf/ext/myEXT/ext_icon.gif




                                                 23
ARCHITECTURE:
         STORAGE AND MOUNTPOINTS
 Top-Level in file-tree

 Drivers can ship custom config
   WebDAV: Username, Password, …


 Of fline/Online detection for
  Remote data sources




                                    24
ARCHITECTURE:
            STORAGE AND MOUNTPOINTS
 „FileMounts“: new definition
   Label

   Storage

   All Folders in Storage selectable


 User-FileMounts „filter“ Storage
   All storages in filetree
   Only accessible folder shown




                                        25
ARCHITECTURE: COLLECTIONS


 New collection Interfaces since T YPO3 4.7
 Central storage/grouping of records/data
 Similar JCF / STL Container

 FAL extends Collection:
   Folder-Collection:   All files within a folder
   Static-Collection:   pre selected files


 Extensions/Upload-CE uses „collection“
   Central exchange of files



                                                     26
FAL VS. DAM




              27
FILE ABSTRACTION LAYER AND D.A.M.

 FAL is NOT compatible to DAM
 FAL won‘t replace DAM

 FAL concentrates on file meta -data
 DAM concentrates on file -content meta-data

 DAM 2.0  Media Extension
   Static collections                              - FAL
   Folder collections                              - FAL
   Tag/Filter collection                 - t.b.d

   Migration  possible (to a certain extend)

 New projects with DAM??? Start with 6.0alpha1 and FAL!!!

                                                             28
Use, Extend
 DEVELOPERS   and customize
              the File
INFORMATION   Abstraction
              Layer




                        29
DEVELOPERS INFORMATION:
              CUSTOM DRIVERS
 Possibilities: WebDAV, Flickr, Amazon S3, FTP, SharePoint…

 Driver Interface + Registry
  1. implement Interface
  2. Register at Registry
  3. configure within Storage




                                                               30
DEVELOPERS INFORMATION:
               T YPOSCRIPT
 New TypoScript Object „FILES“




                                   31
DEVELOPERS INFORMATION:
        WORKING WITH COLLECTIONS
 collections selected in TCE -Form
  PHP Code has to work with them




                                      32
DEVELOPERS INFORMATION:
    RETRIEVING FILES FROM T YPOLINK
 Currently: Check for „is file“

 New prefix „file:“
   file:1:user_upload/index.html
   file:735




                                      33

More Related Content

What's hot

Files concepts.53
Files concepts.53Files concepts.53
Files concepts.53myrajendra
 
Os10
Os10Os10
Os10issbp
 
ITFT_File system interface in Operating System
ITFT_File system interface in Operating SystemITFT_File system interface in Operating System
ITFT_File system interface in Operating SystemSneh Prabha
 
Unit ivos - file systems
Unit ivos - file systemsUnit ivos - file systems
Unit ivos - file systemsdonny101
 
Acyclic grapch directory 56(2)
Acyclic grapch directory 56(2)Acyclic grapch directory 56(2)
Acyclic grapch directory 56(2)myrajendra
 
Operating Systems - Implementing File Systems
Operating Systems - Implementing File SystemsOperating Systems - Implementing File Systems
Operating Systems - Implementing File SystemsMukesh Chinta
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRmarcocasario
 
TagFS — Tag Semantics for Hierarchical File Systems
TagFS — Tag Semantics for Hierarchical File SystemsTagFS — Tag Semantics for Hierarchical File Systems
TagFS — Tag Semantics for Hierarchical File Systemsguest52d7e8
 
Chapter 10 - File System Interface
Chapter 10 - File System InterfaceChapter 10 - File System Interface
Chapter 10 - File System InterfaceWayne Jones Jnr
 
File System Interface
File System InterfaceFile System Interface
File System Interfacechandinisanz
 
directory structure and file system mounting
directory structure and file system mountingdirectory structure and file system mounting
directory structure and file system mountingrajshreemuthiah
 
File implementation
File implementationFile implementation
File implementationMohd Arif
 
101 4.6 create and change hard and symbolic links v2
101 4.6 create and change hard and symbolic links v2101 4.6 create and change hard and symbolic links v2
101 4.6 create and change hard and symbolic links v2Acácio Oliveira
 

What's hot (20)

Files concepts.53
Files concepts.53Files concepts.53
Files concepts.53
 
Os10
Os10Os10
Os10
 
ITFT_File system interface in Operating System
ITFT_File system interface in Operating SystemITFT_File system interface in Operating System
ITFT_File system interface in Operating System
 
OSCh12
OSCh12OSCh12
OSCh12
 
Unit ivos - file systems
Unit ivos - file systemsUnit ivos - file systems
Unit ivos - file systems
 
ISUG 113: File stream
ISUG 113: File streamISUG 113: File stream
ISUG 113: File stream
 
Acyclic grapch directory 56(2)
Acyclic grapch directory 56(2)Acyclic grapch directory 56(2)
Acyclic grapch directory 56(2)
 
Operating Systems - Implementing File Systems
Operating Systems - Implementing File SystemsOperating Systems - Implementing File Systems
Operating Systems - Implementing File Systems
 
Local Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIRLocal Persistent data with ActionScript 3 and AIR
Local Persistent data with ActionScript 3 and AIR
 
TagFS — Tag Semantics for Hierarchical File Systems
TagFS — Tag Semantics for Hierarchical File SystemsTagFS — Tag Semantics for Hierarchical File Systems
TagFS — Tag Semantics for Hierarchical File Systems
 
Os6
Os6Os6
Os6
 
Operating system
Operating systemOperating system
Operating system
 
OPERATING SYSTEM
OPERATING SYSTEMOPERATING SYSTEM
OPERATING SYSTEM
 
Chapter 10 - File System Interface
Chapter 10 - File System InterfaceChapter 10 - File System Interface
Chapter 10 - File System Interface
 
File System Interface
File System InterfaceFile System Interface
File System Interface
 
directory structure and file system mounting
directory structure and file system mountingdirectory structure and file system mounting
directory structure and file system mounting
 
21 domino mohan-1
21 domino mohan-121 domino mohan-1
21 domino mohan-1
 
File implementation
File implementationFile implementation
File implementation
 
Files
FilesFiles
Files
 
101 4.6 create and change hard and symbolic links v2
101 4.6 create and change hard and symbolic links v2101 4.6 create and change hard and symbolic links v2
101 4.6 create and change hard and symbolic links v2
 

Similar to The File Abstraction Layer in TYPO3 6.0

TYPO3 6.0. What's new
TYPO3 6.0. What's newTYPO3 6.0. What's new
TYPO3 6.0. What's newRafal Brzeski
 
Fight with linux reverse
Fight with linux reverseFight with linux reverse
Fight with linux reversechao yang
 
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
 Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-HornsteinYandex
 
Root file system for embedded systems
Root file system for embedded systemsRoot file system for embedded systems
Root file system for embedded systemsalok pal
 
computer notes - Unix primer
computer notes - Unix primercomputer notes - Unix primer
computer notes - Unix primerecomputernotes
 
Biblio to Fedora Commons REST API
Biblio to Fedora Commons REST APIBiblio to Fedora Commons REST API
Biblio to Fedora Commons REST APIcmoyers
 
Hadoop training in bangalore-kellytechnologies
Hadoop training in bangalore-kellytechnologiesHadoop training in bangalore-kellytechnologies
Hadoop training in bangalore-kellytechnologiesappaji intelhunt
 
C++ shared libraries and loading
C++ shared libraries and loadingC++ shared libraries and loading
C++ shared libraries and loadingRahul Jamwal
 

Similar to The File Abstraction Layer in TYPO3 6.0 (20)

TYPO3 6.0. What's new
TYPO3 6.0. What's newTYPO3 6.0. What's new
TYPO3 6.0. What's new
 
DFSNov1.pptx
DFSNov1.pptxDFSNov1.pptx
DFSNov1.pptx
 
DAOS Middleware overview
DAOS Middleware overviewDAOS Middleware overview
DAOS Middleware overview
 
Fsoss12
Fsoss12Fsoss12
Fsoss12
 
Fight with linux reverse
Fight with linux reverseFight with linux reverse
Fight with linux reverse
 
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
 Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
 
Root file system for embedded systems
Root file system for embedded systemsRoot file system for embedded systems
Root file system for embedded systems
 
Fsoss2011
Fsoss2011Fsoss2011
Fsoss2011
 
Linking in MS-Dos System
Linking in MS-Dos SystemLinking in MS-Dos System
Linking in MS-Dos System
 
Tlf2012
Tlf2012Tlf2012
Tlf2012
 
Hadoop -HDFS.ppt
Hadoop -HDFS.pptHadoop -HDFS.ppt
Hadoop -HDFS.ppt
 
File
FileFile
File
 
computer notes - Unix primer
computer notes - Unix primercomputer notes - Unix primer
computer notes - Unix primer
 
Nelf2013
Nelf2013Nelf2013
Nelf2013
 
Biblio to Fedora Commons REST API
Biblio to Fedora Commons REST APIBiblio to Fedora Commons REST API
Biblio to Fedora Commons REST API
 
Nelf2012
Nelf2012Nelf2012
Nelf2012
 
Hadoop
HadoopHadoop
Hadoop
 
Hadoop training in bangalore-kellytechnologies
Hadoop training in bangalore-kellytechnologiesHadoop training in bangalore-kellytechnologies
Hadoop training in bangalore-kellytechnologies
 
NetApp & Storage fundamentals
NetApp & Storage fundamentalsNetApp & Storage fundamentals
NetApp & Storage fundamentals
 
C++ shared libraries and loading
C++ shared libraries and loadingC++ shared libraries and loading
C++ shared libraries and loading
 

More from Steffen Ritter

The Future of TYPO3 CMS
The Future of TYPO3 CMSThe Future of TYPO3 CMS
The Future of TYPO3 CMSSteffen Ritter
 
Der File Abstraction Layer
Der File Abstraction LayerDer File Abstraction Layer
Der File Abstraction LayerSteffen Ritter
 
Neuerungen in TypoScript in TYPO3 Version 4.7
Neuerungen in TypoScript in TYPO3 Version 4.7Neuerungen in TypoScript in TYPO3 Version 4.7
Neuerungen in TypoScript in TYPO3 Version 4.7Steffen Ritter
 
Einführung und Grobüberblick über TYPO3 4.7
Einführung und Grobüberblick  über TYPO3 4.7Einführung und Grobüberblick  über TYPO3 4.7
Einführung und Grobüberblick über TYPO3 4.7Steffen Ritter
 

More from Steffen Ritter (6)

The Future of TYPO3 CMS
The Future of TYPO3 CMSThe Future of TYPO3 CMS
The Future of TYPO3 CMS
 
The Way to TYPO3 6.0
The Way to TYPO3 6.0The Way to TYPO3 6.0
The Way to TYPO3 6.0
 
Der File Abstraction Layer
Der File Abstraction LayerDer File Abstraction Layer
Der File Abstraction Layer
 
Neuerungen in TypoScript in TYPO3 Version 4.7
Neuerungen in TypoScript in TYPO3 Version 4.7Neuerungen in TypoScript in TYPO3 Version 4.7
Neuerungen in TypoScript in TYPO3 Version 4.7
 
HTML5 in TYPO3 4.7
HTML5 in TYPO3 4.7HTML5 in TYPO3 4.7
HTML5 in TYPO3 4.7
 
Einführung und Grobüberblick über TYPO3 4.7
Einführung und Grobüberblick  über TYPO3 4.7Einführung und Grobüberblick  über TYPO3 4.7
Einführung und Grobüberblick über TYPO3 4.7
 

Recently uploaded

Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Recently uploaded (20)

Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

The File Abstraction Layer in TYPO3 6.0

  • 1. T3CON12 Québec City FILE ABSTRACTION LAYER 1
  • 2. AGENDA  Introduction into File Abstraction  current State in TYPO3  goals and concepts http://theplayunderground.com/images/Folder%20Stack.jpg  The File Abstraction Layer in T YPO3 6.0  influences on editors  architecture  FAL vs. DAM  Developers Information: Customize FAL  custom Drivers  usage in Extensions  extending FAL 2
  • 3. STEFFEN RITTER  Germany, near Frankfurt  Studied Computer Science  Freelancer for T YPO3 Development  T YPO3 since 2006  Core Team Member  Release Manager 4.7 3
  • 4. Current State, INTRODUCTION Goals, History, Concepts 4
  • 5. INTRODUCTION: CURRENT STATE  plain PHP functions ( fopen, is_dir, …)  operating system restriction: Windows vs. Unix  files in T YPO3 site root  Usage  copied to uploads/  thumbnails copied to typo3temp/  obtains disk space  replacing files dif ficult  meta-data distributed 5
  • 6. INTRODUCTION: GOALS  omit superfluous copies  reference files  central meta-data management  no direct file-system access  external file-systems  „DAM“ with core support 6
  • 7. INTRODUCTION: HISTORY AND FUTURE  planned since years  several attempts / refactorings  huge task  DAM not core  finally: BLE-project with planned integration in 4.7  released with 6.0alpha1  improvements and actions welcome 7
  • 8. INTRODUCTION: CONCEPTS  Resource – element in file-system  File – real file in file -system  Folder – structuring unit of file -system  Folder in local file-system, tag or album in Flickr  ProcessedFile – variants  References File 8
  • 9. INTRODUCTION: CONCEPTS  Storage – unix: mount  Mount-point definition  Aggregation: Driver, Name, Path, „user-mount “  Driver – low -level interface  php file-system calls  WebDAV: PUT/GET/POST … 9
  • 10. FILE ABSTRACTION Changes for Editors IN TYPO3 6.0 10
  • 11. CHANGES FOR EDITORS: FILE MODULE 11
  • 12. CHANGES FOR EDITOR: IMAGES 12
  • 13. CHANGES FOR EDITOR: HCI CHANGES 13
  • 14. CHANGES FOR EDITORS: UPLOADS 14
  • 15. CHANGES FOR EDITORS: FILE-META DATA 15
  • 16. CHANGES FOR EDITORS: FILE-META DATA  WITH MEDIA INSTALLED:  „bridge to DAM“ 16
  • 17. FILE ABSTRACTION Architecture IN TYPO3 6.0 17
  • 18. ARCHITECTURE: CLASS HIERARCHY  Interface to code against  Objects in memory  In file-system 18
  • 19. ARCHITECTURE: PERSISTENCE  File: database (sys_file)  Folder: transient  Storage: database (sys_storage)  FileReference: database (sys_file_reference)  ProcessedFile: database (sys_file_processedfile)  References in Database: [UID]  Folder: [???] 19
  • 20. ARCHITECTURE: IDENTIFY A RESOURCE  4 dif ferent Identifier:  Identifier  Combined Identifier  uid  Sha1 (internal only)  Identifier user_upload/Admin/test.html  String, unique within Storage  useless without storage  Combined Identifier 1:user_upload/Admin/test.html  Extends identifier with Storage UID  [StorageUid]:[Identifier]  uid  Indexed elements  Database relations 20
  • 21. ARCHITECTURE: IDENTIFY A RESOURCE WAAAHH? 21
  • 22. ARCHITECTURE: IDENTIFY A RESOURCE Which Identifier to use?  Combined-Identifier:  TypoScript,  Hand over file to FAL  manual references  Uid  internally (extensions, php, database)  Whenever possible (better performance) 22
  • 23. ARCHITECTURE: IDENTIFY A RESOURCE Gimmick / Backwards compatibilty: Legacy Files  „Virtual Storage“  uid: 0  local-driver  Root at TYPO3_site  not indexed!  Access all files:  0:uploads/pics/bla.jpg  0:typo3conf/ext/myEXT/ext_icon.gif 23
  • 24. ARCHITECTURE: STORAGE AND MOUNTPOINTS  Top-Level in file-tree  Drivers can ship custom config  WebDAV: Username, Password, …  Of fline/Online detection for Remote data sources 24
  • 25. ARCHITECTURE: STORAGE AND MOUNTPOINTS  „FileMounts“: new definition  Label  Storage  All Folders in Storage selectable  User-FileMounts „filter“ Storage  All storages in filetree  Only accessible folder shown 25
  • 26. ARCHITECTURE: COLLECTIONS  New collection Interfaces since T YPO3 4.7  Central storage/grouping of records/data  Similar JCF / STL Container  FAL extends Collection:  Folder-Collection: All files within a folder  Static-Collection: pre selected files  Extensions/Upload-CE uses „collection“  Central exchange of files 26
  • 28. FILE ABSTRACTION LAYER AND D.A.M.  FAL is NOT compatible to DAM  FAL won‘t replace DAM  FAL concentrates on file meta -data  DAM concentrates on file -content meta-data  DAM 2.0  Media Extension  Static collections - FAL  Folder collections - FAL  Tag/Filter collection - t.b.d  Migration  possible (to a certain extend)  New projects with DAM??? Start with 6.0alpha1 and FAL!!! 28
  • 29. Use, Extend DEVELOPERS and customize the File INFORMATION Abstraction Layer 29
  • 30. DEVELOPERS INFORMATION: CUSTOM DRIVERS  Possibilities: WebDAV, Flickr, Amazon S3, FTP, SharePoint…  Driver Interface + Registry 1. implement Interface 2. Register at Registry 3. configure within Storage 30
  • 31. DEVELOPERS INFORMATION: T YPOSCRIPT  New TypoScript Object „FILES“ 31
  • 32. DEVELOPERS INFORMATION: WORKING WITH COLLECTIONS  collections selected in TCE -Form PHP Code has to work with them 32
  • 33. DEVELOPERS INFORMATION: RETRIEVING FILES FROM T YPOLINK  Currently: Check for „is file“  New prefix „file:“  file:1:user_upload/index.html  file:735 33