In Yosemite, I am trying to upload a photo to website. So I open Photos, select a photo and then try to locate the location of the photo. However I could not find it. Before Photos it was possible in iPhoto. Is there a way to locate a photo in Finder? By the way if relevant, I am also using iCloud Storage for photos. However my hdd is big enough so it should be storing photos locally too.
OS X Yosemite 10.10.3 - Photos Version 1.0 - Looks like Apple removed the option to show the photo in Finder.
Not the most direct method, but try this:
Go to Photos Menu -> Preferences -> General
Click the "Show in Finder" button in the dialog box. In Finder you'll see a "Photos Library" highlighted
Right-click and select "Show Package Contents", this will show a directory listing
Select and open the folder named "Masters"
Browse by Year-Month-Date of when the photos or videos were created
I hope Apple restores the more direct "Locate in Finder" for the photo itself.
Check Preferences > General > Importing and see if the "Copy files" checkbox is checked.
If it is not: you have a referenced photo library. This means that all of your photos stay in their original locations when added to Photos. All that Photos does is make thumbnails and catalog the metadata so you can view your library. Therefore, Show Referenced File in Finder is available. Think of "reference" as a pointer in this context. Each thumbnail is basically a pointer to the original file, wherever it was when you added it to Photos.
If it is: you have a regular (non-referenced) photo library. This means that during an import, Photos copies all photos into it's own internal library bundle and manages where they are stored within that bundle. This is the default. However, this means that "Show referenced file" will not be available, because there is no "referenced" file, just the file that Photos is managing.
(iPhoto had a "Show in Finder" option that showed you the original photo on disk - this option is not present in Photos. My guess is it was removed because if those files were within the iPhoto library bundle, moving or renaming it would cause problems with iPhoto displaying it.)
It's not available in the menu and mileage may vary when using the 'show referenced file' menu option. However, Photos does let you quickly export a selected file by pressing CMD + Shift + E or selecting 'File' > 'Export' > 'Export one photo'. The Export menu can also facilitate the export of the unmodified original.
Whilst this isn't the same as finding the original file, I find it is the quickest way to access a copy* and it therefore could be a suitable alternative for many users.
*I'm not clear how Photos exports a jpg if the file is already a jpg (copy or create new). So there could be some loss of quality over the original if exporting to a lossy file format like jpg.
I will share my method. It is hard (thanks Apple for ignoring us on this!) but it works.
I'm assuming you are not using a "referenced library" as noted elsewhere here, but are importing all images into the Photos library. I might switch to a referenced library actually. But for now, this is how I do it.
In a non-referenced imported image library, note that Apple renames all images which it imports to names like "Pictures/Photos\ Library.photoslibrary/originals/1/1A0CFDAF-E43B-49E1-AC88-CD8CC9146947.jpeg" so you cannot just search for the photo name.
Right click on the photo you want to look at in Photos.
Choose "Edit in Safari" (Yeah I know this doesn't make sense, but wait...)
Look at the path in Safari. It will be something like "file:///Volumes/2%20TB%20SSD%20external/Pictures/Photos%20Library.photoslibrary/private/com.apple.Photos/ExternalEditSessions/427E59A2-1DAB-4DBD-95AF-D538AE2D9E9A/IMG_1409.tiff"
The "427E59A2-1DAB-4DBD-95AF-D538AE2D9E9A" is the name of the original file in the Photos library on your disk! "IMG_1409.tiff" is its title, which you will ignore.
Assuming that your photos library is in your home directory as "Pictures/Photos Library.photoslibrary", launch the Terminal.app and type this:
find "~/Pictures/Photos Library.photoslibrary/originals/" -name "427E59A2-1DAB-4DBD-95AF-D538AE2D9E9A.*"
Note: Replace the 427E59A2-1DAB-4DBD-95AF-D538AE2D9E9A with the name you got from step 3. Don't forget the quotes, asterisks and other weird symbols there. They all mean something.
You should get the file location as the answer. Voila!
Apple has made this common and useful operation unnecessarily difficult.
Oh another note: if you don't want to use the terminal, you can just open "Pictures/Photos Library.photoslibrary/originals/num" directory using the Finder (if you know how to look inside packages. Here "num" is the first digit of the photo name, which is "4" for my example of 427E59A2-1DAB-4DBD-95AF-D538AE2D9E9A. the file is in there, in alphabetical order.
As others mentioned, "Show Referenced File in Finder" is now greyed out in the regular case where Photos.app is managing your library. Instead, select the photo and then choose File > Export > Export Unmodified Original to get the photo. Or, you may prefer the modified export, where it can (for example) create a smaller JPEG suitable for emailing.
If the goal is to use the photo in another app, then one way to do get what you want is to first drag the photo to the Finder, then drag or import it into the destination app. You'll then need to delete the files in the Finder afterwards. For some reason the current implementation of Photos forces us to do this step.